Как изменить значение TTL при отправке UDP-пакета для проверки связи с хостом - PullRequest
0 голосов
/ 24 сентября 2018

Я понимаю, что TTL является параметром в заголовке IP.

Я хочу отправить пакет UDP для проверки связи с IP-адресом в JAVA.До сих пор я могу создать пакет UDP и отправить пакет для пинга удаленного IP в JAVA.И я получаю ответ от сервера назначения.

Но я хочу изменить значение TTL.До сих пор я не мог найти какой-либо способ изменить значение TTL в JAVA.Если я изменю значение TTL, пакет не достигнет пункта назначения, и я смогу получить ответ от последнего достижимого прыжка.

Это вывод, который я получаю, отправляя UDP-пакет в Google.

root@JAVA# java udpICMP www.google.com 443

Sending: PING 0 24/09/18 15:27:42

Received from /172.217.17.36:443: 0�42 0 GNI time=24.0 ms

Sending: PING 1 24/09/18 15:27:42

Received from /172.217.17.36:443: 0�42 1 GNI time=23.0 ms

Может ли кто-нибудь помочь мне изменить время жизни в моем коде Java.

Я использовал DatagramSocket и DatagramPacket класс в моем коде.Я обнаружил, что DatagramSocketImpl класс имеет метод setTimeToLive (int ttl) для изменения времени жизни вручную.Но DatagramSocketImpl используется для многоадресного сокета, а также метод защищен .Но я хочу отправить одноадресный пакет на пинг, если я не ошибаюсь.

...