arp 命令本身不能直接列出网络中所有 IP 地址,它只能显示本机 ARP 缓存中已知的 IP-MAC 映射,即:本机通信过的设备。
如果你想查询局域网中所有在线的 IP 地址,需要配合 ping 扫描或使用更强大的工具。以下是几种常见的方法:
⸻
✅ 方法一:使用 arp -a + ping 扫描整个网段(适合 Linux/macOS/Windows)
1. 使用 for 循环 ping 所有主机(以 192.168.1.x 为例)
for ip in (seq1254);doping−c1−W1192.168.1.(seq 1 254); do ping -c 1 -W 1 192.168.1.(seq1254);doping−c1−W1192.168.1.ip > /dev/null & done
2. 查看 ARP 表
arp -a
macOS 用 -t 1,Windows 用 -n 1,注意替换为你的网段。
⸻
✅ 方法二:使用 nmap 扫描局域网(更推荐)
nmap -sn 192.168.1.0/24
说明:
•-sn:Ping 扫描(不进行端口扫描)
•输出会列出在线的 IP 地址和 MAC(如果权限足够)
安装:
sudo apt install nmap # Debian/Ubuntu
sudo yum install nmap # RHEL/CentOS
brew install nmap # macOS
⸻
✅ 方法三:使用 ip neigh(Linux 系统)
ip neigh
这类似于 arp -a,显示当前 ARP 缓存。
⸻
小结
方法是否列出全部在线设备说明
arp -a否只能看到已通信过的主机
ping + arp是(手动)可发现活跃主机并更新 arp 缓存
nmap -sn是(推荐)快速可靠,支持多种平台
ip neigh否类似 arp,用于 Linux







