我想知道网络上所有设备的名称。我已经尝试过在网上找到的许多命令,但没有取得很大成功,但没有一个像我想要的那样工作。
基本上,当我输入路由器设置时,我可以获取连接到我的网络的设备的名称。我也可以在某些应用程序上获得它,所以我想它可以通过某种方式完成。
我想要通过命令行连接到我的 Wi-Fi 网络的所有设备的名称列表。
谢谢
pi@raspberrypi ~ $ nmap -sP 192.168.4.0/24
Starting Nmap 6.00 ( http://nmap.org ) at 2015-03-05 13:55 UTC
Nmap scan report for 192.168.4.1
Host is up (0.0055s latency).
Nmap scan report for 192.168.4.2
Host is up (0.42s latency).
Nmap scan report for 192.168.4.4
Host is up (0.045s latency).
Nmap scan report for 192.168.4.5
Host is up (0.47s latency).
Nmap scan report for 192.168.4.6
Host is up (0.0032s latency).
Nmap scan report for 192.168.4.7
Host is up (0.79s latency).
Nmap scan report for 192.168.4.8
Host is up (0.0024s latency).
Nmap scan report for 192.168.4.9
Host is up (0.038s latency).
Nmap scan report for 192.168.4.10
Host is up (0.034s latency).
Nmap scan report for 192.168.4.11
Host is up (0.029s latency).
Nmap scan report for 192.168.4.22
Host is up (0.12s latency).
Nmap scan report for 192.168.4.27
Host is up (0.031s latency).
Nmap scan report for 192.168.4.28
Host is up (0.012s latency).
Nmap scan report for 192.168.4.100
Host is up (0.0038s latency).
Nmap done: 256 IP addresses (14 hosts up) scanned in 49.30 seconds
答案1
上述答案都不适合我,所以我开始摆弄 arp-scan。所以,我发现有效的是:
arp-scan -I [WIFI INTERFACE] -l
arp-scan 扫描您的网络并列出设备。 -I 选择接口,-l 告诉 arp-scan 查看本地网络。接下来,输入
arp
这将返回 arp-scan 刚刚定位的设备,并列出它们的主机名和 MAC 地址。
答案2
我认为你需要更准确地描述你的问题,尤其是 a 的定义设备名称。
不幸的是,我目前无法访问 Raspberry Pi,因此此处显示的所有内容都来自我的 Debian 7 盒子。
nmap -sP
执行反向 DNS 查找,因此如果您的设备有反向 DNS 条目,其输出如下所示:
> nmap -sP 192.168.4.0/24
Starting Nmap 6.00 ( http://nmap.org ) at 2015-03-12 06:24 CET
Nmap scan report for device1.local (192.168.4.1)
Host is up (0.0021s latency).
Nmap scan report for device2.local (192.168.4.2)
Host is up (0.014s latency).
…
阻止 ping 探测的主机不会出现在输出中。任何不在您使用该选项扫描的端口上提供服务的主机也不会-p
。使用 扫描整个端口范围-p 0-65535
,虽然会产生显着的网络占用空间,但仍然不会显示根本没有任何开放端口的主机。
关于网络中主机的唯一可靠信息是它们具有 MAC 和 IP 地址。您的 DHCP 服务器知道这两个地址,因为它已经分配了 IP 地址。此外,许多 DHCP 客户端会发送包含在其 DHCP 请求中的主机名,因此 DHCP 服务器具有该设备的名称,即使该名称未出现在其他任何地方(DNS、SMB 等)。
不幸的是,您的 DHCP 服务器似乎没有向您的名称服务器报告动态分配的 IP 地址,因此您无法检索此信息。
要查找网络中的所有设备,您可以转储ARPping 所有主机后的表(例如使用nmap -sP
):
> arp -vn
Address HWtype HWaddress Flags Mask Iface
192.168.4.1 ether 12:34:56:78:9a:bc C wlan0
192.168.4.2 ether 11:22:33:44:55:66 C wlan0
…
通过 MAC 和 IP 地址,您可以获得有关网络邻居的唯一一致信息。探测开放端口 445 将向您显示最有可能支持 SMB(即 Windows 网络)的设备,因此具有 Windows 名称。
连接到其他开放端口(例如 21/ftp、22/ssh、23/telnet 等)也可能提供主机名,但始终以协议相关的方式 — 并且理论上主机可能在所有端口上以不同的方式调用自己。
或者,您可以在 Pi 上设置自己的 DHCP 和 DNS 服务器,并提供有效的反向 DNS 服务。
如果您的所有设备都支持零配置,您也许可以通过这种方式进行设备发现。
答案3
我倾向于使用芬克利来自 fing 开发工具包。它是一个扫描器,扫描您所在的子网,并尝试提取主机名并将其与 ip 和 MAC 一起显示。
您应该从站点手动安装它,或者使用包管理器 ( brew install fing-cli
) 并以管理员权限运行以使其正常工作。
前任:
sudo fing
14:19:05 > Discovery profile: Default discovery profile
14:19:05 > Discovery class: data-link (data-link layer)
14:19:05 > Discovery on: 192.168.1.0/24
14:19:05 > Discovery round starting.
14:19:05 > Host is up: 192.168.1.151
HW Address: XX:XX:XX:XX:XX:XX
Hostname: My-laptop-hostname
14:19:05 > Host is up: 192.168.1.1
HW Address: YY:YY:YY:YY:YY:YY
Hostname: router.asus.com
14:19:06 > Discovery progress 25%
14:19:07 > Discovery progress 50%
14:19:08 > Discovery progress 75%
14:19:05 > Host is up: 192.168.1.10
HW Address: AA:BB:CC:DD:EE:FF (ASUSTek COMPUTER)
14:19:05 > Host is up: 192.168.1.11
HW Address: GG:HH:II:JJ:KK:LL
14:19:06 > Host is up: 192.168.1.99
HW Address: MM:NN:OO:PP:QQ:RR (Apple)
Hostname: iPhoneOfSomeone
正如您所看到的,并非所有设备都会给出其主机名;例如,某些外围设备(例如打印机)并不总是提供主机名,但大多数设备都会提供主机名。它甚至尝试通过分析 MAC 的 id 部分来猜测制造商
它在 Raspberry Pi 上运行,我不久前在我的上安装了它,它按预期工作。
答案4
avahi-browse -alr
为本地网络中avahi-daemon
正在运行的其他设备提供此信息。