我知道我可以使用 NMAP 或 Linux 上的 arp-scan 等工具来识别本地网络上所有设备的 IP 和 MAC 地址。我还知道 arp-scan 将执行 MAC 地址查找以获取设备制造商。但是这些命令(或任何其他命令)上是否有任何选项集可以告诉我给定 IP 上设备的实际设备名称?例如,如果“Joe 的 iPad”位于 192.168.1.113 上,我想要一个命令来获取该名称。
答案1
网络地图
一些主机可以简单地配置为不是分享这些信息。应该像这样工作:
user@host:~$ nmap 192.168.1.113
Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-11 08:45 AWST
Nmap scan report for Joes iPad (192.168.1.113)
Host is up (0.0038s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
62078/tcp open iphone-sync
Nmap done: 1 IP address (1 host up) scanned in 41.88 seconds
您可以使用以下选项强制 Nmap 尝试对所有目标进行反向 DNS 解析:
-R (DNS resolution for all targets).
Tells Nmap to always do reverse DNS resolution on the target
IP addresses. Normally reverse DNS is only performed against
responsive (online) hosts.
在某些情况下这可能会有所帮助。输出看起来或多或少相同:
user@host:~$ nmap -R 192.168.1.113
Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-11 08:46 AWST
Nmap scan report for joes-ipad.local (192.168.1.113)
Host is up (0.0047s latency).
rDNS record for 192.168.1.113: joes-ipad.local
Not shown: 999 closed ports
PORT STATE SERVICE
62078/tcp open iphone-sync
Nmap done: 1 IP address (1 host up) scanned in 42.61 seconds
无论哪种方式,您始终可以通过外部工具(例如)解析输出grep
。如果您一次扫描多个地址,甚至整个网络范围,这会特别有用:
user@host:~$ nmap 192.168.1.0/24 | grep '(192.168.1.113)'
Nmap scan report for Joes iPad (192.168.1.113)
All 1000 scanned ports on Joes iPad (192.168.1.113) are closed
user@host:~$ nmap -R 192.168.1.0/24 | grep '(192.168.1.113)'
Nmap scan report for Joes iPad (192.168.1.113)
All 1000 scanned ports on Joes iPad (192.168.1.133) are closed
网络工具
你(大概)实际想要做的是这样的:
*输出将根据操作系统和软件版本的不同而有所不同。
user@gnu:~$ arp 192.168.1.113
Address HWtype HWaddress Flags Mask Iface
Joes iPad ether a1:b2:c3:d4:e5:f6 C wlan0
user@bsd:~$ arp 192.168.1.113
Joes iPad (192.168.1.113) at a1:b2:c3:d4:e5:f6 on en0 ifscope [ethernet]
答案2
看看nmblookup
和/或smbutil lookup
命令。