下面为你提供一份系统化、适用于运维与网络管理的 ARP 命令详解,重点说明 Windows CMD 中使用 arp -a查看局域网 IP 信息,并补充 ARP 工作机制、常用参数、常见排错场景及局域网扫描增强方案。


一、arp -a 的作用

在 Windows CMD 输入:

arp -a

可以查看当前计算机的 ARP 缓存表(ARP Cache),内容包括:

字段含义
Internet Address已解析到的 IP 地址
Physical Address对应 MAC 地址
Type动态(dynamic)或静态(static)

示例输出:

Interface: 192.168.1.100 --- 0x3
  Internet Address      Physical Address      Type
  192.168.1.1           11-22-33-44-55-66     dynamic
  192.168.1.8           7c-8a-e1-19-2b-3f     dynamic
  192.168.1.101         94-de-80-2a-3e-29     dynamic

含义:

  • 列出的都是你的主机最近通信过的局域网设备
  • ARP 表不会主动列出所有局域网 IP,只会列出已经解析过的 IP

如需主动探索局域网,需要结合 ping 或扫描工具(后面有扩展方案)。


二、ARP 命令介绍(Windows)

在 CMD 输入:

arp /?

可以看到完整帮助信息。


1. 查看 ARP 表

arp -a

按接口查看:

arp -a -N 192.168.1.100


2. 添加 ARP 静态条目

arp -s 192.168.1.10 00-11-22-33-44-55

用途:

  • 防止 ARP 欺骗攻击
  • 保持固定的 MAC 映射(如打印机)

3. 删除指定 ARP 项

arp -d 192.168.1.10


4. 清空整个 ARP 缓存

需要管理员权限:

arp -d *


三、ARP 工作原理(简述)

ARP(Address Resolution Protocol)是将 IP 地址解析为 MAC 地址 的协议。

简要流程:

  1. 当 PC 需要访问局域网某个 IP 时
  2. 缓存中没有该 IP → 广播 ARP 请求包
  3. 目标设备回复自己的 MAC
  4. PC 记录在 ARP 表(dynamic)
  5. 有效期一般为 2-10 分钟

所以:
arp -a 只能看到你已经通信过的设备。


四、如何查看局域网所有 IP?(增强方案)

方案 1:先 ping 全网段,再用 arp -a

for /l %i in (1,1,254) do ping 192.168.1.%i -n 1 -w 5 >nul
arp -a

适用于简单扫描。


方案 2:使用 netsh(更专业)

清空 ARP 表:

arp -d *

扫描:

for /l %i in (1,1,254) do @ping -n 1 192.168.1.%i >nul
arp -a


方案 3:推荐使用 nmap(更专业)

nmap -sn 192.168.1.0/24

可获得:

  • 所有在线 IP
  • MAC 地址
  • 厂家信息(OUI)

五、ARP 相关运维排错场景

1. 网关冲突

症状:ping 网关不通,偶尔能上网。

解决:

arp -a

检查是否有两个不同 MAC 地址对应网关 IP。


2. ARP 欺骗攻击(arp spoofing)

症状:

  • 网速异常
  • 内网设备间断断续续
  • 访问网关时 MAC 地址频繁变化

3. 静态 IP 冲突

较常见于企业内网:

arp -a
ping x.x.x.x

观察 MAC 是否变化。


六、常见问题解答(FAQ)

Q1:为什么 arp -a 看不到所有局域网设备?

因为 ARP 表只记录你主动通信过的 IP。


Q2:为什么有时候 MAC 为空?

通常是设备关闭或 ARP 缓存过期。


Q3:ARP 表可以手动写死吗?

可以,用:

arp -s IP MAC

但断电后会丢失。


如果你需要,我可以为你生成:

  • Windows 一键扫描局域网在线 IP 的批处理脚本(bat)
  • 专业版扫描工具(PowerShell)
  • 企业级局域网 IP/MAC 管理方案文档
  • ARP 欺骗检测方案(含防御)

告诉我你需要哪一种即可。