我有一个程序,要求它知道它的IP地址。但是当我使用
InetAddress current_addr = addresses.nextElement();它回来了
127.0.1.1这不是很有帮助。如何从java获得我的非本地IP地址?
发布于 2013-08-16 17:03:29
当你使用:
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?
https://stackoverflow.com/questions/18278522
复制相似问题