繁体   English   中英

Java DatagramPacket对象返回IPV6地址,但需要IPv4

[英]Java DatagramPacket object returning IPV6 address but require IPv4

我正在使用一个名为“ packet”的DatagramPacket对象从网络接收数据包,并使用该数据包对象来获取发送方的IP地址(即,使用packet.getAddress())。 但是,当我想要一个IPv4地址时,它将返回代表发送者的IPv6地址。 有没有办法实现我想要的?

IPv4和IPv6是单独的协议。 如果您获得了IPv6地址,那么您将通过IPv6收到一个数据包,这就是您将看到的地址。 IPv6正在全球范围内部署,因此您的软件将不得不对其进行处理。 IPv4地址和IPv6地址之间没有关系,因此,如果您看到IPv6地址,那么您将获得这些。

唯一的例外是通过IPv6套接字接收IPv4数据包时。 在这种情况下,您将看到一个以::ffff:开头的IPv6地址。 之后是IPv4地址。 在这种情况下,您实际上并不是通过IPv6进行通信,因此可以看到IPv4地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM