arp -a命令可查看Windows本地ARP缓存中近期通信过的局域网设备IP与MAC映射,仅包含动态(dynamic)条目,超时(约2–20分钟)未刷新即被自动清除,无法回溯数天前记录。

要查看当前Windows电脑曾经连接过但现已断开的局域网主机MAC地址,需从本地ARP缓存中提取——该缓存仅保存近期通信过的设备IP与MAC映射,且会随时间自动老化清除,无法回溯数天前的记录。
用命令提示符查看ARP缓存中的主机MAC地址
ARP缓存是系统自动维护的临时表,只包含最近与本机成功通信过的局域网设备条目,断开连接后仍保留约2分钟至20分钟(取决于操作系统和网络活动),超时未刷新即被删除。
1、按下 Win + R 打开“运行”对话框。
2、输入 cmd 并回车,启动命令提示符。
3、在窗口中输入命令:arp -a,然后按回车执行。
4、观察输出内容:每行格式为“Internet Address(IP) Physical Address(MAC) Type”,其中 Type 为 dynamic 的条目即为近期通信过的主机;若看到大量 00-00-00-00-00-00 或 incomplete,则说明对应IP未响应ARP请求,不是有效在线主机。
5、【注意:arp -a 不显示主机名,仅显示IP和MAC;若某IP已离线但缓存未清,仍会出现在列表中】
将ARP缓存结果导出为文本便于筛选
当局域网设备较多时,直接在命令行滚动查看易遗漏,导出后可用记事本或Excel快速过滤目标IP段或特定MAC前缀。
方法一:导出全部ARP缓存
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
在命令提示符中执行:arp -a > %USERPROFILE%\Desktop\arp_cache.txt,回车后桌面将生成纯文本文件。
方法二:只导出IPv4缓存(排除IPv6干扰)
执行:arp -a | findstr "192.168. 10. 172.16." > %USERPROFILE%\Desktop\local_arp.txt,该命令仅保留常见私有IP段条目,适合家庭/办公小网络。
通过PowerShell增强识别已连接主机
PowerShell可结合ARP缓存与活动连接历史,过滤出更可信的“曾连接主机”——它能自动排除广播地址、本机环回地址及明显无效条目。
1、按下 Win + X,选择“终端(管理员)”或“Windows PowerShell(管理员)”。
2、粘贴并执行以下命令:
Get-NetNeighbor -AddressFamily IPv4 | Where-Object {$_.State -eq 'Reachable' -or $_.State -eq 'Stale'} | Select-Object IPAddress, LinkLayerAddress, State | Sort-Object IPAddress
3、输出中 LinkLayerAddress 列即为对应IP的MAC地址,State 为 Reachable 表示刚通信过,Stale 表示缓存未更新但尚未失效——这两类都属于“当前电脑确实连接过”的可靠证据。
4、【关键限制:此命令不显示已彻底超时并被系统自动清理的旧条目,也无法恢复重启后丢失的缓存】

















