首页 > 解决方案 > 用Java获取网络上其他设备可以访问的IP地址

问题描述

我最近开始使用 Java 中的套接字,并将我的服务器套接字与静态方法返回的 IP 地址绑定在一起,InetAddress.getLocalHost() 在大多数情况下,我的客户端能够连接到服务器。

但是,当我的服务器计算机具有复杂的网络时,它不起作用。静态方法InetAddress.getLocalHost()返回了客户端机器无法访问的地址

我想知道,如何获得通过Java连接到同一网络的其他设备可以访问的IP地址?

标签: java

解决方案


InetAddress.getLocalHost() 是映射到您的主机名的地址。这就是它所说的一切。根据您的主机和网络设置以及您的意图,您从中得到的可能是也可能不是您想要绑定套接字的内容。

套接字绑定到一个或多个网络接口,并将侦听这些接口。您可以通过调用获取所有接口的列表:

NetworkInterface.getNetworkInterfaces()

我相信你也可以绑定到地址“0.0.0.0”,它表示绑定到你所有的网络接口。我过去使用过这个,但我不知道它是否被基本套接字 API 支持。


推荐阅读