我从一篇文章中读到 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
- 将 27316024 毫秒转换为小时,得到 7.59 小时
- 7.59 小时转换为 07:35 世界时
- 根据您当地的时区更改时间
附加功能
时间戳是自世界标准时间午夜以来的毫秒数。
Originate
是您的本地机器制作请求数据包
Receive
的时间 是远程机器接收数据包
Transmit
的时间 是远程机器制作响应数据包的时间
阅读协议,你会发现它是自 UT 以来的毫秒格式。https://www.ietf.org/rfc/rfc0792.txt
除非设备无法提供此功能并且时间是虚假的 - 请阅读 RFC。聪明的把戏,但这不是获得时间的可靠方法。