【问题标题】:Get current time of webserver [closed]获取网络服务器的当前时间 [关闭]
【发布时间】:2012-02-13 02:03:45
【问题描述】:

我想知道是否可以获取网络服务器的当前时间。例如,我想访问某个任意网站,并获取托管该网站的网络服务器的当前时间。

如果它有所作为,我知道一些 php、html 和 css。而且我知道 C++,虽然我怀疑这会有所帮助。

谢谢。

【问题讨论】:

  • 您想获取您无法控制的远程网络服务器的时间吗?

标签: php time web webserver


【解决方案1】:
<?php
print_r(get_headers("http://www.google.com"));
?>

输出:

Array
(
    [0] => HTTP/1.0 302 Found
    [1] => Location: http://www.google.co.nz/
    [2] => Cache-Control: private
    [3] => Content-Type: text/html; charset=UTF-8
    [4] => Set-Cookie: PREF=ID=099aa9ac8980212e:FF=0:TM=1329099372:LM=1329099372:S=E_PStXZJPIz2ZMm7; expires=Wed, 12-Feb-2014 02:16:12 GMT; path=/; domain=.google.com
    [5] => Date: Mon, 13 Feb 2012 02:16:12 GMT
    [6] => Server: gws
    [7] => Content-Length: 221
    [8] => X-XSS-Protection: 1; mode=block
    [9] => X-Frame-Options: SAMEORIGIN
    [10] => HTTP/1.0 200 OK
    [11] => Date: Mon, 13 Feb 2012 02:16:13 GMT
    [12] => Expires: -1
    [13] => Cache-Control: private, max-age=0
    [14] => Content-Type: text/html; charset=ISO-8859-1
    [15] => Set-Cookie: PREF=ID=a4441cbc36cea461:FF=0:TM=1329099373:LM=1329099373:S=I6zlXb015nXUM0ht; expires=Wed, 12-Feb-2014 02:16:13 GMT; path=/; domain=.google.co.nz
    [16] => Set-Cookie: NID=56=22IthPMv3iR1hlwH0VkhSNq4imnzW4AhPoKM_3boXysAA-Zf4iM0u8Uv6EeV7coLnW91WQqGXyC9AtR4Snh9IG9kSfZRz8pk_X48VwV6UR0eY4c_UrtT8Wdk2zRyNcgR; expires=Tue, 14-Aug-2012 02:16:13 GMT; path=/; domain=.google.co.nz; HttpOnly
    [17] => P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
    [18] => Server: gws
    [19] => X-XSS-Protection: 1; mode=block
    [20] => X-Frame-Options: SAMEORIGIN

)

我不会依赖它,你想达到什么目的?

【讨论】:

  • 我认识的一个网站碰巧在特定日期、特定时间(上午 9:00)更改了其内容。我想知道系统时钟接近上午 9:00 的确切时间,因为它的时钟可能与我的时钟非常接近。
  • 大多数服务器都准确计时,我的使用原子钟。我没有看到其中的价值,但您只需使用上面的内容来获取 Date... 行。
  • 早上 6 点,我的大学打开了它的时间表系统,我们可以选择我们的课程。发生这种情况时,数百人试图访问服务器。我想知道他们什么时候打开它,这样我就可以先尝试进去。我也在考虑使用 Firefox 插件(Check4Change)。如果您有任何建议,请随时告诉我。顺便谢谢你的回答!
  • 我的建议在上面。使用 get_headers 函数
【解决方案2】:

向服务器发出常规 (HTTP) 请求,并查看它是否在响应标头中返回日期字段。不过,可能处于调整后的时区,因此虽然这会告诉您服务器的时钟是否设置正确,但它不会告诉您哪个时区以及服务器在内部运行的时间。如果服务器没有返回任何这样的值,那就没有办法知道了。

【讨论】:

    【解决方案3】:

    如前所述,可以通过 HTTP 获取时间 - 使用 HTTP 时间协议 (HTP),该协议在许多系统上都可以使用 htpdate,但由于它使用 HTTP 日期标头通常只能精确到最近0.5 秒(使用多个服务器可以稍微提高准确性):

    htpdate ntp.org
    

    也可以使用 TLS(从 TLS 交换中提取时间戳)tlsdate 获取时间,这可以提供更好的准确性:

    tlsdate -nV ntp.org
    

    【讨论】:

      【解决方案4】:

      这是可能的,你不需要任何编程来做到这一点:

      1. 安装像 Fiddler 这样的 HTTP 调试器并启动它来监控您的 HTTP 流量。
      2. 访问您要检查的服务器的网页。
      3. 选择条目并查看 HTTP 响应标头,您正在寻找名为“日期”的条目,其中包含服务器的本地时间和时区。

      【讨论】:

        猜你喜欢
        • 2011-03-17
        • 2020-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-26
        • 1970-01-01
        • 2017-08-05
        相关资源
        最近更新 更多