我使用的端口扫描器软件能够列出我的 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
会抓住它们。