gpt4 book ai didi

java - 静态 InetAddress.getLoopbackAddress() 返回什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:07 24 4
gpt4 key购买 nike

Java 7 向类 java.net.InetAddress 添加了一个新的静态方法:

static InetAddress getLoopbackAddress()
Returns the loopback address.

现在我想知道结果中将包含什么地址,是 IP4 还是 IP6。

documentation对这个问题有点模糊:

The InetAddress returned will represent the IPv4 loopback address, 127.0.0.1, or the IPv6 loopback address, ::1. The IPv4 loopback address returned is only one of many in the form 127...*

Java 如何决定是返回 127.0.0.1 还是返回 IPv6 pendant ::1

或者它们都由同一个 InetAdress 对象表示?

结果总是一样的吗?这取决于我的网卡吗?

最佳答案

我认为这里给出的其他答案是错误的。

默认情况下,Java 首选 IPv6 堆栈(如果可用)但首选 IPv4 地址。注意细微差别。这是由 java.net.preferIPv4Stackjava.net.preferIPv6Addresses 系统属性控制的,它们都默认为 false。

因此,InetAddress.getLoopbackAddress() 几乎总是会返回一个 IPv4 地址。您必须将 java.net.preferIPv6Addresses 系统属性设置为 true 才能让它返回 IPv6 地址。

我在 JDK 源代码中没有看到此方法的结果有任何操作系统依赖性。我想不出 Java 不会(使用默认设置)为此方法返回 IPv4 地址的操作系统。

关于java - 静态 InetAddress.getLoopbackAddress() 返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14309819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com