Назад | Перейти на главную страницу

Получение удаленного системного времени из метки времени 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 это время, когда удаленная машина создает ответный пакет

Прочтите о протоколе, и вы обнаружите, что это значение в миллисекундах с момента UT. https://www.ietf.org/rfc/rfc0792.txt

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