获取网络上设备的名称


14

我想知道网络上所有设备的名称。我已经尝试了很多在网络上找到的命令,但都没有取得很大的成功,但是没有任何工作像我想要的那样。

基本上,当我输入路由器设置时,可以获得连接到网络的设备名称。我也可以在某些应用程序上获得它,所以我猜它可以以某种方式完成。

我想要一个通过命令行连接到我的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

Answers:


8

我倾向于为此使用fing,它是一台扫描程序,用于扫描您所在的子网,并尝试提取主机名并将其与ip和MAC一起显示。

例如:

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上,我不久前将其安装在我的树上,并且按预期工作。


1
您如何安装Fing?您的链接已失效,并且没有包含在任何Raspberry Pi存储库中。
Patrick Cook

5
请说明您如何致电fing以获得该输出。没有命令,答案是不完整的。
user666412

2
我用来apt-get install libpcap-dev ; wget https://www.fing.io/wp-content/uploads/2016/10/overlook-fing-3.0.deb ; dpkg -i overlook-fing-3.0.deb 安装,然后fing运行它。它没有报告我的Rpi的主机名,但确实将其识别为HW Address: B8:27:EB:1B:E6:0C (Raspberry Pi Foundation)
Dave X

1
在第一个测试网络上的22个设备网络上甚至没有检测到一个主机名。与另外24个主机相同。就目前而言(2018年2月),Fing在我看来一团糟。
Sopalajo de Arrierez

5
链接仍然正确吗?它现在似乎是物联网产品,而不是命令行工具。
Venryx

8

上面的答案对我都不起作用,因此我开始使用arp-scan。因此,我发现有效的是:

arp-scan -I [WIFI INTERFACE] -l

arp-scan扫描您的网络并列出设备。-I选择接口,-l告诉arp-scan查看本地网络。接下来,输入

arp

这将返回刚定位的设备进行arp-scan,并将列出其主机名和MAC地址。


6

我认为您需要更加精确地解决问题,尤其是设备名称的定义。

不幸的是,我目前无法访问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地址报告给名称服务器,因此您无法检索此信息。

要查找网络中的所有设备,可以在对所有主机执行ping操作之后转储ARP表(例如,使用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服务。

如果您所有的设备都支持Zeroconf,则您可以通过这种方式进行设备发现。


3

为了获得Windows主机的设备名称,请使用

nmap --script smb-os-discovery -p 445 192.168.1.0/24

(来源:http : //www.blackbytes.info/2013/07/finding-windows-host/


乔西蒙妮!这仅适用于Windows主机,但是我需要发现网络上的每个设备名称。
Federico Ponzi'3

1
我可能是错的,但是我不确定Linux设备的“设备名称”的概念是什么。我能想到的最接近的是在/ etc / HOSTNAME或/ etc / hostname中定义的主机名,但我不知道是否可以通过询问机器来获取它(当然,除非DNS服务器提供了它) 。
2015年

1

在Linux上,您可以nbtscan用来实现您想要的。

运行sudo apt-get install nbtscan安装。

要查看连接到网络的设备主机名,

运行sudo nbtscan 192.168.0.1-192.168.0.255

假设主机位于192.168.0.1并使用子网掩码255.255.255.0。根据您的网络配置调整IP范围。


这只能解析NetBIOS名称。
皮尔兹'04

而且,对于我的测试,似乎没有显示网络中的所有NetBIOS名称。
Sopalajo de Arrierez,

0

这里引用了三个答案,nmap但是我发现前缀sudo(所有答案都没有)使世界变得与众不同:

$ nmap -sP 192.168.1.0/24

Starting Nmap 7.01 ( https://nmap.org ) at 2019-07-13 14:55 MDT
Nmap scan report for 192.168.1.65
Host is up (0.00037s latency).
Nmap scan report for 192.168.1.66
Host is up (0.00035s latency).
Nmap scan report for 192.168.1.67
Host is up (0.00028s latency).
Nmap scan report for 192.168.1.68
Host is up (0.00025s latency).
Nmap scan report for 192.168.1.70
Host is up (0.017s latency).
Nmap scan report for 192.168.1.254
Host is up (0.00070s latency).
Nmap done: 256 IP addresses (6 hosts up) scanned in 6.86 seconds

$ sudo nmap -sP 192.168.1.0/24

Starting Nmap 7.01 ( https://nmap.org ) at 2019-07-13 14:56 MDT
Nmap scan report for 192.168.1.65
Host is up (0.00050s latency).
MAC Address: 99:99:99:99:99:A6 (Unknown)
Nmap scan report for 192.168.1.66
Host is up (0.00016s latency).
MAC Address: 99:99:99:99:99:D9 (Sony)
Nmap scan report for 192.168.1.70
Host is up (-0.087s latency).
MAC Address: 99:99:99:99:99:36 (Unknown)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: 99:99:99:99:99:00 (Actiontec Electronics)
Nmap scan report for 192.168.1.67
Host is up.
Nmap scan report for 192.168.1.68
Host is up.
Nmap done: 256 IP addresses (6 hosts up) scanned in 2.41 seconds

我偶然发现了这个问答,因为我正在研究一个项目,该项目如何显示人类可读的名称,而不是将计算机编码的IP地址和MAC地址显示给设备。

特别是我要显示“ Toshiba 43” 4K TV”,而不是99:99:99:99:99:36上面的MAC (不是真实地址)显示“(未知)” 。

稍后,我想将项目通过局域网扩展到Internet,当我查看与机器交互的外部IP地址时,将显示“ Stack Exchange ”而不是999.999.9.99Ask Ubuntu999.999.9.99


-1

jcbermu非常接近,但来自nmap的手册页:

-sL (List Scan) .
       The list scan is a degenerate form of host discovery that simply lists each host of the network(s) specified, without sending any packets to the target hosts. By default, Nmap still does
       reverse-DNS resolution on the hosts to learn their names.

如果将其存储在rDNS条目中,则会找到它,否则,您可能必须侦听DHCP请求并拦截它们。


-2

您需要nmap。发出如下命令:

nmap -sP 192.168.1.0/24

它将在子网上进行网络发现,192.168.1.0 - 192.168.1.255显示该网络上所有设备的名称和IP地址。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.