【问题标题】:Java DatagramPacket object returning IPV6 address but require IPv4Java DatagramPacket 对象返回 IPV6 地址但需要 IPv4
【发布时间】:2014-05-29 10:46:02
【问题描述】:

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

【问题讨论】:

    标签: java android udp ipv6 ipv4


    【解决方案1】:

    IPv4 和 IPv6 是不同的协议。如果您获得 IPv6 地址,那么您会收到一个通过 IPv6 的数据包,这就是您将看到的地址。 IPv6 正在世界各地部署,因此您的软件将不得不处理它。 IPv4 地址和 IPv6 地址之间没有关系,所以如果您看到 IPv6 地址,那么您将得到的就是它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-03
      • 2012-01-03
      • 2013-08-24
      • 2016-09-20
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多