发送UDP数据包以ping主机时如何修改TTL值

时间:2018-09-24 13:40:03

标签: java sockets networking udp ttl

我知道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。

0 个答案:

没有答案