从ICMP时间戳获取远程系统时间

我从一篇文章中读到ICMP Timestamp可以用来确定系统时间,所以我尝试了hping3 192.168.1.x --icmp --icmp-ts -V 。 输出显示

 len=46 ip=192.168.1.x ttl=xx id=xxxx tos=0 iplen=40 icmp_seq=x rtt=x.xms ICMP timestamp: Originate=27494134 Receive=27316024 Transmit=27316024 ICMP timestamp RTT tsrtt=xx 

问题是,我似乎无法理解输出…我如何从上述结果中得出系统时间? 或者我在这里做错了什么?


远程主机的时间戳可以通过Transmit=27316024来计算

  1. 将27316024毫秒转换为小时,即可获得7.59小时
  2. 7.59小时转换为07:35世界时间
  3. 根据当地时区更改时间

附加function

时间戳是自世界时间午夜以来的毫秒数。

Originate是您本地机器制作请求包的时间
Receive是远程机器接收数据包的时间
Transmit是远程机器发出响应包的时间

阅读有关该协议,你会发现这是自UT以来的毫秒数。 https://www.ietf.org/rfc/rfc0792.txt

除了当设备不能提供这个和时间是假的 – 阅读RFC。 聪明的把戏,但这不是一个可靠的方式来获得时间。