端口扫描器如何辨别局域网上的主机名?

端口扫描器如何辨别局域网上的主机名?

我使用的端口扫描器软件能够列出我的 LAN 上的 IP 地址及其主机名。我很困惑它是如何获取主机名的。例如,我在局域网上有几个 Raspberry Pi,端口扫描器软件能够列出它们的所有主机名。

netstat -ant在 Pi 上使用它来发现它没有监听除端口 22(SSH)之外的任何端口,所以我认为它无法响应任何其他协议。

我也尝试了各种nmap命令,但没有一个命令能够显示主机名:

sudo nmap -sP 192.168.0.*
sudo nmap 192.168.0.102
sudo nmap -R 192.168.0.102

有人能告诉我我的端口扫描软件如何获取主机名吗?它会查询路由器吗?

附加信息:端口扫描器软件称为高级端口扫描器

答案1

最后我找到了一个开源项目,叫愤怒的 IP 扫描器,查看了源代码,找到了答案。

它基本上查询目标机器的UDP 端口 5353(多播 DNS)和端口 137(NetBIOS)来查找该机器的主机名。

我错过了那些端口,因为netstat -ant只显示 TCP 端口。netstat -anu会抓住它们。

相关内容