当获得计算机的IP时,它显示0.0.0.0

时间:2013-11-27 20:29:42

标签: java

所以我有这个代码

server = new ServerSocket(6789, 100);
showMessage("Your IP is: "+server.getInetAddress().getHostAddress()+"\n");

我也试过.getInetAddress()。getCanonicalHostName()和其他一些,它们都显示0.0.0.0或0.0.0.0/0.0.0.0。 任何人都知道为什么会这样吗? 此外,当客户端与RIGHT ip连接时,它可以工作,只是显示错误。

3 个答案:

答案 0 :(得分:1)

0.0.0.0表示它绑定到所有适配器,而不仅仅是其中一个适配器,如localhost或您的网卡。

答案 1 :(得分:0)

我认为您可以使用one这些方法 -

InetAddress.getLocalHost().getHostAddress()

如果您有多个接口,则可能更喜欢使用此one -

NetworkInterface.getNetworkInterfaces()

答案 2 :(得分:0)

彼得说。如果您想了解特定的本地接口,请查看java.net.NetworkInterface静态方法,并从那里获取特定的InetAddress。然后,如果您只想使用特定的本地接口,可以将InetAddress传递给ServerSocket构造函数。