列出本地网络上的所有设备?

问题描述 投票:0回答:2

我已经尝试了

arp -a
很多次,它列出了一些设备,但不是全部。
ifconfig
显示了我的IP地址和MAC地址以及其他一些有用的信息,但它没有显示本地网络上的所有设备。有没有显示所有IP地址的命令?

ip wifi arp ifconfig
2个回答
22
投票

arp -a 将仅显示存储在本地 ARP 缓存中且您的计算机连接到的 MAC 地址。 当我试图查看本地网络中的每个设备时,我必须对其进行扫描。 例如,如果您有 192.168.1.0/24 网络,您可以执行以下操作:

$ for i in `seq 1 254`; do
ping -c 1 -q 192.168.1.$i &
done

您将尝试对网络中的每台计算机执行 ping 操作。当然,并不是每台计算机都会响应 ping。这就是为什么您不能依赖 ping。现在您需要检查 ARP 缓存。

$ arp -a | grep 192.168.1. | grep ether

此命令将显示仅使用此网络中的计算机以及响应 ARP 请求的计算机过滤的 ARP 缓存(在 99% 的情况下,它将是网络中设备的完整列表 - 请记住,当设备断开连接)。


0
投票

要使用 Windows CMD .bat 文件生成列表,请执行以下操作。

创建一个带有循环的 .bat 文件,该文件使用

ping
命令向网络上每个可能的可用地址发送 ping。我使用 ping 命令上的
-a and -n 1
选项发送单个 ping
-n 1
,并请求提供主机名。 ping 网络后,您可以使用
arp
命令获取简明列表,使用
arp -a >con
它将输出重定向到控制台,即使 .bat 文件重定向到文件也是如此。

Windows .bat 文件中的以下命令似乎可以解决问题。

for /L %%i in (1,1,254) do (
ping -a -n 1 192.168.0.%%i 
)

arp -a >con

接下来运行 .bat 文件,将输出发送到文本文件:

listdev.bat > listdev.txt

这将生成一个包含 ping 命令结果的文本文件。它看起来像下面这样:

C:\Users\rcham>(ping -a -n 1 192.168.0.3  ) 

Pinging DESKTOP-GFSP7AC.xxxxxxxx.net [192.168.0.3] with 32 bytes of data:
Request timed out.

Ping statistics for 192.168.0.3:
    Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),

C:\Users\rcham>(ping -a -n 1 192.168.0.4  ) 

Pinging rick-MS-7B98.xxxxxxxx.net [192.168.0.4] with 32 bytes of data:
Reply from 192.168.0.4: bytes=32 time=5ms TTL=64

Ping statistics for 192.168.0.4:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 5ms, Maximum = 5ms, Average = 5ms

C:\Users\rcham>(ping -a -n 1 192.168.0.5  ) 

Pinging 192.168.0.5 with 32 bytes of data:
Reply from 192.168.0.148: Destination host unreachable.

Ping statistics for 192.168.0.5:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

C:\Users\rcham>(ping -a -n 1 192.168.0.6  ) 

Pinging 192.168.0.6 with 32 bytes of data:
Reply from 192.168.0.148: Destination host unreachable.

Ping statistics for 192.168.0.6:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

C:\Users\rcham>(ping -a -n 1 192.168.0.7  ) 

Pinging 192.168.0.7 with 32 bytes of data:
Reply from 192.168.0.148: Destination host unreachable.

Ping statistics for 192.168.0.7:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

C:\Users\rcham>(ping -a -n 1 192.168.0.8  ) 

Pinging SurfacePro-2.xxxxxxxx.net [192.168.0.8] with 32 bytes of data:
Reply from 192.168.0.148: Destination host unreachable.

Ping statistics for 192.168.0.8:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

C:\Users\rcham>(ping -a -n 1 192.168.0.9  ) 

Pinging starfive.xxxxxxxx.net [192.168.0.9] with 32 bytes of data:
Reply from 192.168.0.148: Destination host unreachable.

Ping statistics for 192.168.0.9:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),

请注意,上面的列表中对

ping
命令的响应存在差异。

  • 已收到回复
  • 请求超时
  • 无法访问目标主机的回复。

第一个意味着有一个运行设备连接到具有该 IP 地址的网络,并且该设备配置为回复

ping
命令的 ICMP Echo 请求。

第二个意味着可能有一个设备连接到具有该 IP 地址的网络,但是该设备可能被配置为忽略 ICMP Echo 请求,或者它已关闭且无法回复。可能还有其他可能的原因,但这两个是小型网络中最常见的原因。

第三种情况意味着路由器无法将 ICMP Echo 请求发送到指定的 IP 地址,因此请求未发送。

有关最后两个响应之间的差异以及更多详细信息,请参阅帖子 ping 响应“请求超时”。与“目标主机无法访问”

© www.soinside.com 2019 - 2024. All rights reserved.