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