获取非本地IP地址Java

时间:2013-08-16 16:58:22

标签: java networking ip

我有一个程序要求它知道它的IP地址。但是当我使用

InetAddress current_addr = addresses.nextElement();

返回

127.0.1.1

哪个不是很有帮助。如何从java获取非本地IP地址?

1 个答案:

答案 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?