38 lines
886 B
Perl
38 lines
886 B
Perl
|
#!/usr/bin/perl
|
||
|
# Script Fragt den RFC 868 Timeserver ab
|
||
|
# und liefert die Zeit
|
||
|
#
|
||
|
# 20060721 Peter Baumann <dev@linuxnet.ch>
|
||
|
|
||
|
use IO::Socket;
|
||
|
|
||
|
# Einen DaytimeServer anzapfen
|
||
|
$hostname = "172.16.1.40";
|
||
|
|
||
|
# Serverport
|
||
|
use constant SVPORT => 37;
|
||
|
|
||
|
# Differenz zwischen 1.1.1900 (Time-Server)
|
||
|
# und 1.1.1970 (UNIX-Epoche)
|
||
|
use constant KORR => 2208988800;
|
||
|
|
||
|
my $cur_time = &get_time;
|
||
|
print "Die Server Zeit ist $cur_time\n";
|
||
|
|
||
|
# Zeit vom anderen Server holen
|
||
|
sub get_time
|
||
|
{
|
||
|
my ($binarytime, $servertime);
|
||
|
my $ts_sock = new IO::Socket::INET (
|
||
|
PeerAddr => $hostname,
|
||
|
PeerPort => SVPORT,
|
||
|
Proto => 'tcp')
|
||
|
or die "can't create local socket: $@\n";
|
||
|
|
||
|
read($ts_sock,$binarytime,4);
|
||
|
$ts_sock->close();
|
||
|
$servertime = unpack('N',$binarytime);
|
||
|
$servertime = localtime($servertime - KORR);
|
||
|
return "$servertime";
|
||
|
}
|