Ping

從 ICMP 時間戳獲取遠端系統時間

  • December 7, 2016

我從一篇文章中讀到 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. 根據您當地的時區更改時間

附加功能

時間戳是自世界標準時間午夜以來的毫秒數。

Originate是您的本地機器製作請求數據包

Receive的時間 是遠端機器接收數據包

Transmit的時間 是遠端機器製作響應數據包的時間

閱讀協議,你會發現它是自 UT 以來的毫秒格式。https://www.ietf.org/rfc/rfc0792.txt

除非設備無法提供此功能並且時間是虛假的 - 請閱讀 RFC。聰明的把戲,但這不是獲得時間的可靠方法。

引用自:https://serverfault.com/questions/818058