Я прочитал из статьи, что метку времени 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
Отметка времени - количество миллисекунд после полуночи по всемирному времени.
Originate
это время, когда ваш локальный компьютер обрабатывает пакет запроса
Receive
это время, когда удаленная машина получает пакет
Transmit
это время, когда удаленная машина создает ответный пакет
Прочтите о протоколе, и вы обнаружите, что это значение в миллисекундах с момента UT. https://www.ietf.org/rfc/rfc0792.txt
За исключением случаев, когда устройство не может предоставить это, и время подделано - прочтите RFC. Умный трюк, но это ненадежный способ выиграть время.