我不明白,为什么下面的代码打印 0.0.9.229 而不是 127.0.0.1。谁能告诉我,急于解决这个问题?
String ha = InetAddress.getLocalHost().getHostAddress();
System.out.println(ha);
更新: 在 Ubuntu 上运行的代码
/etc/主机
127.0.0.1 localhost
127.0.1.1 2533
最佳答案
InetAddress.getLocalHost()
并不像大多数人认为的那样。它实际上返回机器的主机名,以及与该主机名关联的 IP 地址。这可能是用于连接到外部世界的地址。它可能不会。这仅取决于您如何配置系统。
在我的 windowsbox 上,它获取机器名称和外部 ip 地址。在我的 linux 机器上它返回主机名和 127.0.0.1 因为我在/etc/hosts 中设置了它
关于 java 。 InetAddress.getLocalHost 返回奇怪的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18488809/