![如何查看网络上的所有机器/主机名](https://linux22.com/image/606346/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E6%89%80%E6%9C%89%E6%9C%BA%E5%99%A8%2F%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
我正在尝试寻找一种可靠的方法来查看本地网络上的所有主机/机器名称,例如“Jim 的 Ipad”或“Austi 的 IMac”。目前,我唯一能做到的方法是查看通常会显示名称的 dhcp 请求日志,尽管我想知道是否有一种方法可以一次列出网络上的所有名称?我试过 nmap -sP 192.168.1.*,它似乎只给出了机器的制造商,而不是实际的机器/域名:
MAC Address: 00:1D:BA:40:14:31 (Sony)
Host 192.168.1.109 is up (0.00073s latency).
MAC Address: 00:50:94:C8:1C:02 (Pace Micro Technology PLC)
Host 192.168.1.111 is up (0.00011s latency).
MAC Address: 00:24:8C:EA:F0:7D (Asustek Computer)
Host 192.168.1.112 is up (0.0054s latency).
MAC Address: 00:18:71:5C:D2:BA (Hewlett Packard)
Host 192.168.1.117 is up (0.0049s latency).
我也尝试过 nmap -sL 192.168.1.*,但似乎根本不起作用,它只是列出了所有 IP 并说它们没有被扫描,没有任何附加信息或类似的东西。我正在从充当网络路由器/网关的 debian 服务器运行这些命令。任何帮助都将不胜感激,谢谢!
答案1
如果您没有运行动态 DNS 或者您的所有机器都没有 DNS 条目,您的 dhcp 数据库可能是您能得到的最好的列表。据我所知,NMAP 不会在没有反向 DNS 的情况下解析主机名。其他扫描仪(如 Angry IP 扫描仪)可能会使用 netbios 查询获取 windows/cifs 主机名。
答案2
您可以使用 dnsmasq 作为缓存 DNS 服务器,而不是 bind。它还具有内置 DHCP 服务器。当 dnsmasq 授予租约时,它会存储主机名,以便您能够使用host
或进行查找nslookup
。要检索完整的主机列表,只需cat /var/lib/dnsmasq/dnsmasq.leases
。它显示所有实际 IP 地址租约和主机名。
答案3
要快速扫描 netbios,只需使用 nbtscan 即可nbtscan 192.168.1.0/24
。这仅在您的网络上只有启用 netbios 的设备(通常是 Windows)时才有效。
对于偏执(但速度较慢)的主机发现,你可以使用以下方法对网络节点的 -A
所有端口()进行高级()nmap 扫描:-p-
nmap -p- -PN -A 192.168.1.0/24
如果您控制路由器,您还可以检查 ARP 表,这是获取网络上活动节点列表的最可靠方法。