如何确定与网络上的 IP 关联的主机名?

Phi*_*ing 12 networking hostname ip-address

如何确定与网络上的 IP 关联的主机名?(不配置反向DNS)

这是我认为不可能的事情。但是我一直在我的手机上使用Fing。它能够找到我网络上的每个设备(大概是使用 arp 扫描)并用主机名列出它们。

例如,这个应用程序能够找到插入家用路由器的新安装的 Debian Linux 设备,没有明显的反向 DNS。

据我所知,pingNeighbor Discoveryarp都不包含主机名。那么,fing 如何为新安装的 Linux PC 获得此功能呢?Linux 机器上的其他什么协议会给出机器配置的主机名?

roa*_*ima 18

零配置协议套件(维基百科)可以提供这些信息。

最著名的实现是 AllJoyn(Windows 和其他)、Bonjour(Apple)、Avahi(UNIX/Linux)。

显示 LAN 上所有内容列表的示例(在这种情况下不是很多):

avahi-browse --all --terminate
+  ens18 IPv6 Canon MG6650                                  _privet._tcp         local
+  ens18 IPv4 Canon MG6650                                  _privet._tcp         local
+  ens18 IPv6 Canon MG6650                                  Internet Printer     local
+  ens18 IPv4 Canon MG6650                                  Internet Printer     local
+  ens18 IPv6 Canon MG6650                                  UNIX Printer         local
+  ens18 IPv4 Canon MG6650                                  UNIX Printer         local
+  ens18 IPv6 Canon MG6650                                  _scanner._tcp        local
+  ens18 IPv4 Canon MG6650                                  _scanner._tcp        local
+  ens18 IPv6 Canon MG6650                                  _canon-bjnp1._tcp    local
+  ens18 IPv4 Canon MG6650                                  _canon-bjnp1._tcp    local
+  ens18 IPv6 Canon MG6650                                  Web Site             local
+  ens18 IPv4 Canon MG6650                                  Web Site             local
+  ens18 IPv6 SERVER                                        _device-info._tcp    local
+  ens18 IPv4 SERVER                                        _device-info._tcp    local
+  ens18 IPv6 SERVER                                        Microsoft Windows Network local
+  ens18 IPv4 SERVER                                        Microsoft Windows Network local
Run Code Online (Sandbox Code Playgroud)

更具体地说,您可以使用avahi-resolve-address将地址解析为名称。

例子

avahi-resolve-address 192.168.1.254
192.168.1.254 router.roaima...
Run Code Online (Sandbox Code Playgroud)