如何获取本地 Wi-Fi 网络中主机名的 IP?安卓工作室(JAVA)
Posted
技术标签:
【中文标题】如何获取本地 Wi-Fi 网络中主机名的 IP?安卓工作室(JAVA)【英文标题】:How to get the IP of hostname in a local Wi-Fi network? Android studio (JAVA) 【发布时间】:2022-01-07 17:51:34 【问题描述】:我想做的是为我的 NodeMCU 制作一个 android 应用程序,这样我就可以通过 Websockets 发送数据而不使用浏览器。我不希望最终用户输入任何 IP 地址来查找网络中的 NodeMCU。我了解到您可以为 NodeMCU 设置主机名。
有什么方法可以让我使用它的主机名在网络中获取 NodeMCU 的 IP,然后通过它进一步通信?
【问题讨论】:
NodeMCU 上运行着什么样的服务器?有固定端口吗? 端口将被修复....到目前为止,我一直使用端口 81 用于 websocket,端口 80 用于查看网络服务器。是的,ESP 将作为网络服务器运行 这能回答你的问题吗? Discover devices (esp8266/arduino) on same LAN subnet 这不是问题。 【参考方案1】:您可以在不使用主机名的情况下找到服务器的 ip。
两台设备运行在同一个-wifi-网络中。
Android 客户端知道它的 ip。说 192.168.2.12。
现在它知道服务器的 ip 会像 192.168.2.##.
只需创建一个循环,使用 Socket 尝试使用客户端周围的 ip 进行连接。
将套接字时间设置为两秒或更短。
【讨论】:
这是一个糟糕的解决方案。网络也可以是 192.168.##.##。甚至只是检查 256 个 IP,超时时间为 2 秒,也需要 8.5 分钟。 也许吧。但是在这里我们只需要几秒钟,因为网络是我描述的,并且 IP 地址彼此相邻。 @gre_gor。当 travelleng 和设备进入访客网络时,我也使用它。一直有效。 @gre_gor:你可以打开多个连接来扫描,至少4个,也许8个,所以不需要一次做一个。以上是关于如何获取本地 Wi-Fi 网络中主机名的 IP?安卓工作室(JAVA)的主要内容,如果未能解决你的问题,请参考以下文章