Ping
從 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
- 將 27316024 毫秒轉換為小時,得到 7.59 小時
- 7.59 小時轉換為 07:35 世界時
- 根據您當地的時區更改時間
附加功能
時間戳是自世界標準時間午夜以來的毫秒數。
Originate
是您的本地機器製作請求數據包
Receive
的時間 是遠端機器接收數據包
Transmit
的時間 是遠端機器製作響應數據包的時間
閱讀協議,你會發現它是自 UT 以來的毫秒格式。https://www.ietf.org/rfc/rfc0792.txt
除非設備無法提供此功能並且時間是虛假的 - 請閱讀 RFC。聰明的把戲,但這不是獲得時間的可靠方法。