我知道TTL是IP标头中的参数。
我想发送UDP数据包以ping通JAVA中的IP地址。到目前为止,我可以创建UDP数据包并将其发送到ping JAVA中的远程IP。而且我正在从目标服务器获得响应。
但是我想修改TTL值。到目前为止,我找不到在JAVA中修改TTL值的任何方法。如果更改TTL值,则数据包将不会到达目的地,并且可以从最后一个可达的跃点获得响应。
这是到目前为止,我通过向UDP发送UDP数据包得到的输出。
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 用于多播套接字,并且该方法受保护。但是,如果我没看错,我想将单播数据包发送到ping。