Udp Time#
Question#
ADDQUESTION
Solution#
from socket import *
from struct import unpack
from time import ctime, sleep
from sys import argv
argv = argv[1:]
if len(argv) == 0:
argv = [ 'time-nw.nist.gov' ]
s = socket(AF_INET, SOCK_DGRAM)
s.settimeout(5.0)
for server in argv:
print(server, ":", end=' ')
try:
s.sendto('', 0, (server, 37))
t = int(unpack('!L', s.recv(16)[:4])[0])
# Convert from 1900/01/01 epoch to 1970/01/01 epoch
t -= 2208988800
print(ctime(t))
except timeout:
print("TIMEOUT")
except:
print("ERROR")
s.close()