A través del método sendto de la interfaz socket, realizamos una petición a un servidor NTP.
| Fuente: |
|---|
| def struct_time_now(SERVER = '0.es.pool.ntp.org'): |
| from time import gmtime |
| try: |
| from socket import socket |
| from struct import unpack |
| client = socket(2, 2) |
| client.sendto('\x1b' + (47 *'\0'), (SERVER, 123)) |
| r = gmtime(unpack('!12I', client.recv(1024))[10] - 2208988800L) |
| except: |
| r = gmtime() |
| finally: |
| return r |