Я понимаю, что 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 используется для многоадресного сокета, а также метод защищен .Но я хочу отправить одноадресный пакет на пинг, если я не ошибаюсь.