我从一篇文章中看到,ICMP 时间戳可用于确定系统时间,所以我尝试了一下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
是远程机器制作响应数据包的时间
答案1
阅读该协议,你会发现这是自 UT 以来的毫秒格式。https://www.ietf.org/rfc/rfc0792.txt
除非设备无法提供此信息,并且时间是假的 - 请阅读 RFC。这是一个聪明的技巧,但这不是获取时间的可靠方法。