使用Java获取网络上其他设备可以访问的IP地址

时间:2019-05-19 17:57:32

标签: java

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

NetworkInterface.getNetworkInterfaces()

我相信您也可以绑定到地址“ 0.0.0.0”,即绑定到所有网络接口。我过去曾经使用过,但是我不知道基本套接字API是否支持它。