Web Services Unix时间戳Web服务

72qzrwbm  于 7个月前  发布在  Unix
关注(0)|答案(2)|浏览(86)

互联网上是否有一个可靠的Web服务,可以返回当前的Unix(UTC)时间戳?

cuxqih21

cuxqih211#

一个可行的解决方法是使用我们从HTTP响应中获得的响应头。在一些罕见的情况下,比如我的情况,当你没有直接访问Web服务器,你不能自己创建一个API时,你可以发送一个XHR并使用
第一个月
然后解析返回字符串中的date值。当然,你必须相信服务器日期。我知道这是一个罕见的(也许是愚蠢的)用例,但它可能会发生。

ss2ws0br

ss2ws0br2#

这里有一个例子,你可以使用Python来获得它的依赖性,它可以很容易地移植到几乎任何语言:

from contextlib import closing
from socket import socket, AF_INET, SOCK_DGRAM
import struct
import time

NTP_PACKET_FORMAT = "!12I"
NTP_DELTA = 2208988800  # 1970-01-01 00:00:00
NTP_QUERY = b'\x1b' + 47 * b'\0'  

def ntp_time(host="pool.ntp.org", port=123):
    with closing(socket( AF_INET, SOCK_DGRAM)) as s:
        s.sendto(NTP_QUERY, (host, port))
        msg, address = s.recvfrom(1024)
    unpacked = struct.unpack(NTP_PACKET_FORMAT,
                   msg[0:struct.calcsize(NTP_PACKET_FORMAT)])
    return unpacked[10] + float(unpacked[11]) / 2**32 - NTP_DELTA

字符串
其中ntp_time()返回当前UTC Unix时间戳,包括微秒。

相关问题