Получить удаленное системное время из временной метки ICMP

Я прочитал из статьи, что временная метка 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

  1. Преобразовав 27316024 миллисекунды в часы, вы получите 7,59 часа
  2. 7,59 часов переводится в 07:35 по всемирному времени.
  3. Измените время в соответствии с вашим местным часовым поясом

Дополнительно

Отметка времени - это количество миллисекунд с полуночи по всемирному времени.

Originate время, когда ваша локальная машина обрабатывает пакет запроса
Receive время, когда удаленная машина получает пакет
Transmit время, когда удаленная машина обрабатывает ответный пакет

1 ответ

Решение

Прочтите о протоколе, и вы найдете его в формате миллисекунд с UT. https://www.ietf.org/rfc/rfc0792.txt

За исключением случаев, когда устройство не может обеспечить это, и время является фиктивным - читайте RFC. Умный трюк, но это не будет надежным способом получить время.

Другие вопросы по тегам