如何获取本地网络中所有有效IP地址的列表?

352

有没有一种方法可以获取本地网络中所有有效IP地址的列表?

我的意思是网络中每个用户正在使用的所有IP地址。


3
如何通过终端列出所有连接网络中的IP地址?最好是使用命令行并且能够适用于macOS或Linux系统。 - Ciro Santilli OurBigBook.com
3个回答

503

安装nmap

sudo apt-get install nmap

那么

nmap -sP 192.168.1.*

或者更常见地

nmap -sn 192.168.1.0/24

将扫描整个.1到.254范围

这将在整个子网中进行简单的ping扫描,以查看哪些主机在线。


24
根据man页面,“在较新的nmap版本中,-sP也称为-sn”。如果通配符无效,可以尝试类似于 nmap -sn 192.168.1.0/24 或 nmap -sn 192.168.1.100-199 的命令。 - Stickley
22
如果您在使用zsh,需要在范围周围加上引号以避免文件匹配:nmap -sP '192.168.1.*' - dionyziz
1
@Jin Izzraeel 没有任何危害的可能性。不能确定它是否会崩溃,但机会非常小。 - Eric Thorbjornsen
1
nmap只能找到我的路由器。有没有办法找到所有连接的机器? - fishinear
2
如果您的智能设备处于开启状态,但屏幕关闭,nmap 将无法找到它。 - bonobo
显示剩余5条评论

410

请按照以下步骤操作:

  1. 在命令提示符处键入 ipconfig (或 Linux 上的 ifconfig)。这将给出您自己机器的 IP 地址,例如:192.168.1.6,则广播 IP 地址为 192.168.1.255。
  2. 对广播 IP 地址执行 Ping 命令:ping 192.168.1.255(Linux 可能需要使用-b)。
  3. 现在键入 arp -a(apt 安装 net-tools)。您将得到本网段上所有 IP 地址的列表。

4
无法在我的电脑上(Windows 8)运行。 - phuclv
8
这在我的Mac上运行正常 - OSX 10.10.3。 - Cullub
31
许多设备未被找到。 - Bagusflyer
11
arp -a只能找到我的路由器。 nmap发现了所有主机。 - Geoffrey Anderson
7
步骤2和步骤3需要解释更清楚。这些命令的作用是什么(例如,为什么需要ping广播IP?)?arp是什么意思?我是否必须在执行步骤3之前执行步骤2?如果是这样,为什么?改进:第二步中,ping广播IP的目的是向网络上所有主机发送信息,以便让它们更新其ARP高速缓存表。 ARP是地址解析协议,它将IP地址映射到物理MAC地址。 在第三步中,我们使用arp命令来查看ARP高速缓存表并查找我们想要的IP地址对应的MAC地址。必须先完成第二步,因为我们需要确保所有设备都已更新其ARP高速缓存表中的信息,以便在第三步中正确地获取所需的MAC地址。 - Patrick
显示剩余4条评论

29

2
我使用了高级IP扫描器。 - Abdu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接