无法使用 NMAP 或 Arp 获取 LAN 设备名称

无法使用 NMAP 或 Arp 获取 LAN 设备名称

我想获取我的网络上的“友好”设备名称列表。

我读的所有内容说,我绝对可以通过 来做到这一点nmap。但是,它对我来说不起作用:

Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-01 15:14 PDT
Nmap scan report for 192.168.11.2
Host is up (0.0057s latency).
Not shown: 993 closed ports
PORT      STATE SERVICE
5000/tcp  open  upnp
7000/tcp  open  afs3-fileserver
7100/tcp  open  font-service
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
62078/tcp open  iphone-sync

如果一切正常,它会显示类似“Levi 的 iPhone 的 Nmap 扫描报告”的内容。但是,如您所见,它只显示 IP 地址。我的第一个想法是,这一定是某种权限问题或相关设备的配置问题。但是,当我在另一台移动设备上运行一个简单的网络扫描应用程序时,它清楚地列出了同一网络上所有设备的 IP、MAC 地址和名称。因此,显然这些数据是可用的。

我遗漏了什么?为什么应用程序能够找到此信息,但终端命令却找不到?

答案1

最基本的方法“反向 DNS”会向路由器询问设备 DHCP 租约请求中收到的名称。但实际上并非所有设备发送其中的主机名,当然配置了静态 IP 地址的设备首先不会发送任何 DHCP 租约请求。

不过,nmap 在这方面有点小题大做。可以使用更简单的工具(例如“host”)来查询反向 DNS。事实上,当您运行“arp”时,它除了尝试显示其列出的地址的反向 DNS 之外,不会执行任何其他操作。能够通过“arp”列出名称是一个副作用——ARP 协议本身实际上没有名称的概念。

一种相关方法是通过 mDNS(多播 DNS)查询设备。在某些操作系统上,这包含在“nmap -R”中,并且始终会生成 *.local 名称。但实际上很少有设备会响应 mDNS - 主要是 macOS 系统、一些 NAS 硬件等。Linux 计算机可以安装 mDNS,但通常不会安装。

Nmap 更有用的一点是通过其“脚本”方法,该方法通过各种协议(NBT、HTTP 等)查询设备 - 但不能保证目标设备将支持任何这些协议。

但就你的情况而言,你似乎并没有真正已启用脚本模式,因此您不会从中获得任何结果。如果您使用该-A选项运行它,它可能会报告与您的移动应用程序类似的结果。

但总体而言,这并不是要求设备能够真正主机名或愿意透露主机名。这都是自愿加入的。

答案2

您的链接显示该名称是通过以下方式找到的反向 DNS 查找nmap。如果您使用(用于端口扫描)或其他工具进行反向 DNS 查找,则这无关紧要。

此外,如果您的网络中没有支持反向查找且未配置设备名称的 DNS 服务器,那么您将无法得到答案。

一些设备通过 mDNS 广播其名称,您可以查找此信息。

或者换句话说:无法保证您的网络设置方式可以让您轻松获取网络上“友好”设备名称列表。

您需要网络上有实现此目的的组件。如果您没有这些组件,那么您将无法获得此信息(或只能获得部分信息)。

相关内容