java - 用Java获取网络上其他设备可以访问的IP地址
问题描述
我最近开始使用 Java 中的套接字,并将我的服务器套接字与静态方法返回的 IP 地址绑定在一起,InetAddress.getLocalHost()
在大多数情况下,我的客户端能够连接到服务器。
但是,当我的服务器计算机具有复杂的网络时,它不起作用。静态方法InetAddress.getLocalHost()
返回了客户端机器无法访问的地址
我想知道,如何获得通过Java连接到同一网络的其他设备可以访问的IP地址?
解决方案
InetAddress.getLocalHost() 是映射到您的主机名的地址。这就是它所说的一切。根据您的主机和网络设置以及您的意图,您从中得到的可能是也可能不是您想要绑定套接字的内容。
套接字绑定到一个或多个网络接口,并将侦听这些接口。您可以通过调用获取所有接口的列表:
NetworkInterface.getNetworkInterfaces()
我相信你也可以绑定到地址“0.0.0.0”,它表示绑定到你所有的网络接口。我过去使用过这个,但我不知道它是否被基本套接字 API 支持。
推荐阅读
- maven - jenkins(openshift) chrome 节点上的“org.openqa.selenium.WebDriverException:未知错误:Chrome 无法启动:异常退出”问题
- php - 如何使用 Laravel 显示具有匹配记录字段的用户?
- javascript - d3 树工具提示不出现
- scala - Scala:如何异步捕获通过 Kafka 发送的所有多条消息的状态?
- android - GPS位置检索和在后台比较值的最佳方法?
- javascript - 大量输入,但在 redux-saga 中只有一个按钮提交
- python-3.x - 如何优化xgb回归模型?
- autohotkey - 逐个字符粘贴剪贴板中的文本
- python - 从列表推导转换回 for 循环
- asp.net-mvc - 将 Asp .net 验证放入常规 html 标记