String hostAddress = InetAddress.getLocalHost().getHostAddress();
上面的代码在 Java 1.7 和 1.6 上的工作方式不同。在 1.6 中,它返回分配给系统的正确 IP (10.4...)。在 1.7 中,它返回 127.0.0.1。
要解决此问题,我必须使用NetworkInterface.getNetworkInterfaces()
并从中获取InetAddress
。我将尝试连接到每一个InetAddress
可用的,直到一次成功。这很好用,但我想知道为什么 Java 1.7 的行为不同?
任何帮助都会很棒。