扫描网络内所有设备的IP地址
arp 命令本身不能直接列出网络中所有 IP 地址,它只能显示本机 ARP 缓存中已知的 IP-MAC 映射,即:本机通信过的设备。
如果你想查询局域网中所有在线的 IP 地址,需要配合 ping 扫描或使用更强大的工具。以下是几种常见的方法:
⸻
✅ 方法一:使用 arp -a + ping 扫描整个网段(适合 Linux/macOS/Windows)
1. 使用 for 循环 ping 所有主机(以 192.168.1.x 为例)
for ip in ( s e q 1254 ) ; d o p i n g − c 1 − W 1192.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