如何用PowerShell获取指定IP段内设备的所有MAC地址?
获取特定IP段设备的IP与MAC地址
以下是几种简易可行的方法,覆盖不同操作系统和工具场景,针对你提到的192.168.12.*网段:
Windows 系统
- 先遍历网段触发ARP请求:
打开命令提示符(CMD),执行快速ping命令,让在线设备返回ARP响应:
参数说明:for /L %i in (1,1,254) do ping -n 1 -w 100 192.168.12.%i-n 1只发送1个ping包,-w 100设置100毫秒超时,避免长时间等待不在线设备。 - 查看ARP缓存表获取MAC:
执行命令查看所有缓存的IP-MAC对应关系:
从输出里筛选arp -a192.168.12.开头的条目,对应的“物理地址”就是设备MAC。
Linux/macOS 系统
- 触发网段内ARP响应:
打开终端,发送广播ping激活设备ARP条目:
参数说明:ping -c 1 -W 0.1 192.168.12.255-c 1发送1个包,-W 0.1设置0.1秒超时。 - 查看并过滤ARP缓存:
直接查看缓存并筛选目标网段:
输出结果里会直接显示对应IP的MAC地址。arp -a | grep 192.168.12.
更高效的工具方案
如果基础命令获取的信息不全(比如部分设备禁ping),可以用专业局域网扫描工具:
- nmap(跨平台):安装后执行主机发现扫描,直接输出存活设备的IP和MAC:
nmap -sn 192.168.12.0/24-sn参数表示只做主机发现,不扫描端口,速度快且准确率高,结果中会明确标注每个设备的MAC地址及设备类型。 - Advanced IP Scanner(Windows专属):图形化工具,输入
192.168.12.1-254后一键扫描,直观展示IP、MAC、设备名称、开放端口等信息,操作零门槛。
注意事项
- 必须和目标设备处于同一局域网,MAC地址是二层网络地址,跨路由网段无法直接获取。
- 部分设备可能禁用ICMP响应(ping不通),但nmap这类工具会通过ARP请求、TCP握手等多种方式探测,仍能获取其MAC地址。
内容的提问来源于stack exchange,提问作者Noah Peter
相关产品推荐
相关产品推荐

