我在使用 InetAddress.getLocalHost().getHostAddress() 时遇到问题。它在大多数计算机上都能正常工作,但在有更多可用 IP 地址的计算机上会失败(在这种情况下,“错误”地址属于 VMware 网络适配器)。我需要将其放入消息中的地址(然后在服务器上将其用作应发送响应的地址)。
我知道我可以使用 NetworkInterface.getNetworkInterfaces() 来获取所有网络接口(interface),但是我如何以编程方式找到稍后对服务器可见的正确网络接口(interface)?在我的特定情况下,客户端和服务器都位于同一公司网络内。
最佳答案
如果所有机器都在同一个网络中,并且该网络有其IP范围,您可以检查IP是否在此范围内。通常 vmware 网络适配器的 IP 位于 192.168.0.x 子网中 - 如果您的公司范围不同,那么它应该足够了。
关于java - 如何找到 "the right"的IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17162721/