在私有网络上查找计算机名称(使用 nmap?)

在私有网络上查找计算机名称(使用 nmap?)

在局域网中,我想使用跨平台程序(最好是 nmap)找出所有连接的计算机的名称。我知道我可以做到

nmap -sn xxx.xxx.xxx.xxx/24

(其中 xxx.xxx.xxx.xxx 是本地 IP 地址)来查找已启动的主机,但是如何查找计算机的主机名?它们是否以我可以使用 nmap 找到的方式广播此信息?

更新:看起来 Angry IP Scanner 可以做到这一点。它是如何做到的?我可以用 nmap 复制它吗?

答案1

我使用过 nmap 和其他 IP 扫描器,例如 Angry IP 扫描器。我的观察是,Nmap 使用反向 DNS 来解析主机名,因此要使其工作,DNS 服务器应该具有主机的反向指针记录。我发现其他扫描器会使用 Netbios 查询来跟进 PTR 查询。

如果你确定目标网络上的所有主机都是 Windows 主机,并且它们已启用 NETBIOS,则可以使用nbtscan 工具来扫描它们。

答案2

来自 Angry IP Scanner 的常见问题解答(“未显示主机名“):

Angry IP Scanners 通过执行以下操作显示 DNS(名称)服务器返回的主机名反向查找. 服务器将获得 IP 地址,如果知道则返回主机名。

如果某台计算机知道自己的名称,并不意味着它已将其提供给网络的 DNS 服务器。换句话说,它自己知道的主机名称(本地名称)和 DNS 服务器知道的附加到 IP 地址的名称(全局名称)可能并不总是匹配。

很多时候,DNS 查询会返回一些通用名称,例如 dhcp-12-13.superisp.com,尤其是在 ISP 网络中。

在以下任一情况下,名称都会匹配:

  • 您的计算机已将名称发送到其获取 IP 地址的 DHCP 服务器,DHCP 服务器已将其提供给本地 DNS 服务器
  • 你有一个静态 IP 地址,并且你的本地主机名是根据网络中全局命名约定匹配的规则配置的
  • 如果查询本地 IP 地址,主机的 TCP 堆栈将返回本地名称,而不是询问全局名称

来自 Nmap 的文档(“主机发现“):

默认情况下,Nmap 仍然会反向DNS解析了解主持人的名字。

这里有更多阅读材料/信息

答案3

事实证明,我必须指定--system-dns才能获取网络上的机器名称。我不确定为什么这样做有效。也许 DNS 配置方式存在意外问题?

更新:实际上,它在一个 VLAN 上运行,但在另一个 VLAN 上运行不成功,而 Angry IP Scanner 可以在两个 VLAN 上运行。

答案4

您还可以使用nmap -A xxx.xxx.xxx.xxx 它在输出中显示主机名。在我的网络上,我通过 grep 管道获取我想要的信息。〜grep -e 'scan report' -e 'Computer name'

相关内容