我有一个程序要求它知道它的IP地址。但是当我使用
时InetAddress current_addr = addresses.nextElement();
返回
127.0.1.1
哪个不是很有帮助。如何从java获取非本地IP地址?
答案 0 :(得分:1)
使用时会得到什么:
InetAddress IP = InetAddress.getLocalHost();
String ipAddress = IP.getHostAddress();
如果没有多个网络接口,理想情况下应该为您提供IP地址。
我在本地测试它,它给了我正确的机器IP地址,即
192.168.2.10
如果您有多个网络接口,那么您可以尝试使用NetworkInterface类,以下是示例:
Enumeration<NetworkInterface> n = NetworkInterface.getNetworkInterfaces();
for (; n.hasMoreElements();)
{
NetworkInterface e = n.nextElement();
System.out.println("Interface: " + e.getName());
Enumeration<InetAddress> a = e.getInetAddresses();
for (; a.hasMoreElements();)
{
InetAddress addr = a.nextElement();
System.out.println(" " + addr.getHostAddress());
}
}
来自相关帖子的来源:java InetAddress.getLocalHost(); returns 127.0.0.1 ... how to get REAL IP?