【问题标题】:IPv6 support in JavaJava 中的 IPv6 支持
【发布时间】:2013-09-12 20:59:32
【问题描述】:

我正在尝试在具有 Windows 7 操作系统的本地系统上测试 Java 程序以支持 IPv6。我已经分配了 IPv6 地址并在网络连接中禁用了 IPv4。

当我执行ipconfig 命令时,我得到 IPv6 地址作为输出。

但是,当我在 java 代码下面执行时,我得到 127.0.0.1 这是一个 IPv4 地址

System.setProperty("java.net.preferIPv6Stack","true");

InetAddress addr = InetAddress.getLocalHost();
System.out.println(addr.getHostAddress());

根据我的理解,上面的代码应该打印0:0:0:0:0:0:0:1

我错过了什么吗?

【问题讨论】:

  • 问题已解决。我设置了错误的系统属性。正确的属性是System.setProperty("java.net.preferIPv6Addresses","true")
  • 您的问题本身就是解决方案吗?
  • 当我问这个问题时,我不知道解决方案。
  • @vinod 请将其写为答案(可能立即)并将其标记为已接受(可能在两天后)
  • @vinod 如果你在这里分享你的解决方案会非常好。

标签: java ipv6


【解决方案1】:

问题已解决。我设置了错误的系统属性。需要设置的正确系统属性是

System.setProperty("java.net.preferIPv6Addresses","true")

设置此属性后,将显示在网络连接中分配的 IPv6 地址。

可以使用以下代码检索 IPv6 环回地址。

InetAddress.getLoopbackAddress().getHostAddress()

【讨论】:

    【解决方案2】:

    您可以使用Inet6Address 类。

    java.net.Inet6Address.getHostAddress()
    

    参考这个问题。 InetAddress.getHostAddress() ipv6 compliant?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-01
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      相关资源
      最近更新 更多