如何获取本地 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)的主要内容,如果未能解决你的问题,请参考以下文章

如何从DNS获取主机名的IP地址?

如何在本地 IP 地址上创建网页,以便连接到同一 Wi-Fi 网络的其他人可以访问它?

如何在网络上自动获取本地IP地址及其原理

如何获取局域网内主机信息-连接网络帐号\密码

从IP地址获取主机名

Python中本地网络的IP地址/主机名列表