【发布时间】:2011-01-23 18:58:39
【问题描述】:
我正在编写一个简单的网络应用程序。我需要知道我的机器在网络上的真实 IP,比如 192.168.1.3 。 getLocalHost 返回 127.0.0.1 (在Linux上,不知道在windows上是不是一样)。怎么做?
【问题讨论】:
-
在我的窗口中,System.out.println(InetAddress.getLocalHost().getHostAddress());打印 10.50.16.136
-
有趣...正确答案,虽然它不起作用?
-
这在 SO 上很常见,错误的回答会被标记为已回答。
-
@sfussenegger 127.0.1.1 是 Debian 的东西(Ubuntu 是从它衍生而来的)。 IIRC,如果你使用 DHCP,你会得到它。这允许报告一个固定的 IP 地址(我相信这对于 GNOME 的顺利运行是必要的)。所以 127.0.1.1 是一个“真实 IP”地址。 (顺便说一句:192.168.* 是非互联网 IP 地址。)
-
@tom 是的,我知道它是什么。我只是想知道这是对这个问题的正确答案(“我需要知道我的机器在网络上的真实 ip”)。
标签: java networking