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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐