netstat 不能查看硬件 MAC 地址,因其仅处理网络层(IP/TCP/UDP)信息,而 MAC 地址属于数据链路层;macOS 中应使用 ifconfig 或 networksetup 命令获取。

netstat 不能查看硬件 MAC 地址。
它专用于显示网络连接、路由表、接口统计、监听端口等网络协议层(IP/TCP/UDP)状态信息,而 MAC 地址属于数据链路层(Layer 2),不在 netstat 的职责范围内。macOS(或任何系统)的 netstat 命令均不提供 MAC 地址输出字段。
✅ 正确查看本机网络接口 MAC 地址的方法(macOS 终端)
1. 查看所有活跃网卡的 MAC 地址
ifconfig | grep -E "^[a-z]|ether"
输出类似:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether aa:bb:cc:dd:ee:ff其中 ether 后面的 aa:bb:cc:dd:ee:ff 就是该接口(如 en0)的 MAC 地址。
2. 只查 Wi-Fi 接口(常见需求)
networksetup -getmacaddress Wi-Fi
返回:Ethernet Address: aa:bb:cc:dd:ee:ff
3. 查以太网接口
networksetup -getmacaddress Ethernet
⚠️ 注意:
ifconfig显示的是所有已配置接口(含虚拟、loopback),而networksetup只显示系统网络设置中命名的物理连接(如 Wi-Fi、Ethernet),更贴近用户实际使用的网络入口。
❌ 为什么 netstat 不行?
-
netstat -an、netstat -rn、netstat -tuln等所有参数组合,都不包含 MAC 地址字段; - 它可能显示
en0或lo0这类接口名,但不会解析或输出其硬件地址; - 即使加
sudo或配合grep过滤,也找不到 MAC 相关内容。
? 补充:想同时看「监听端口 + 对应网卡 + MAC 地址」?需分步操作
- 先用
lsof -iTCP -sTCP:LISTEN查监听服务及绑定地址(如*:3000或127.0.0.1:8080); - 再根据绑定 IP 判断走哪个接口(例如
192.168.1.10→ 查ipconfig en0); - 最后用
ifconfig en0 | grep ether拿 MAC。
不需要一步到位,也没有单命令能跨层联动。
不复杂但容易忽略层级分工。

















