File: test_ntp.pl

package info (click to toggle)
libnet-ntp-perl 1.2-4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 68 kB
  • ctags: 3
  • sloc: perl: 204; makefile: 3
file content (40 lines) | stat: -rwxr-xr-x 1,409 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/perl -w

use strict;
use Net::NTP;
use Time::HiRes;

print "$Net::NTP::VERSION\n";
$Net::NTP::TIMEOUT = 20;

#my $time_then = $Net::NTP::CLIENT_TIME_SEND;
my $time_then = sprintf("%0.5f", Time::HiRes::time);
$Net::NTP::CLIENT_TIME_SEND = $time_then;
my %pkt = get_ntp_response(shift);
my $time_now = sprintf("%0.5f", Time::HiRes::time);
#my $time_now = time();
#my $time_now = $Net::NTP::CLIENT_TIME_RECEIVE;

while(my($k,$v) = each %pkt){
    printf "%s = %s\n", $k, $v;
    print scalar localtime($v),"\n" if $k =~ /Timestamp$/;
}

print "then: $time_then\tnow: $time_now\n";

my $dest_org = sprintf "%0.5f", ( ($time_now - $time_then)  );
my $recv_trans = sprintf "%0.5f", ( $pkt{'Receive Timestamp'} - $pkt{'Transmit Timestamp'} );
my $delay = sprintf "%0.5f", ($dest_org + $recv_trans);

my $recv_org = sprintf "%0.5f", ( $pkt{'Receive Timestamp'} - $time_now );
my $trans_dest = sprintf "%0.5f", ( $pkt{'Transmit Timestamp'} - $time_then );
my $offset = sprintf "%0.5f", (($recv_org + $trans_dest) / 2);

print "Delay: $delay\n";
printf "Offset: %0.5f\n", $offset;
printf "Mode: %s\n", $Net::NTP::MODE{$pkt{'Mode'}};
printf "Stratum: %s\n", $Net::NTP::STRATUM{$pkt{'Stratum'}};
printf "Stratum One Text: %s\n", 
    $Net::NTP::STRATUM_ONE_TEXT{$pkt{'Reference Clock Identifier'}}
    if($pkt{'Stratum'} == 1);
printf "Leap Indicator: %s\n", $Net::NTP::LEAP_INDICATOR{$pkt{'Leap Indicator'}};