必须组合使用networksetup -listallhardwareports、ifconfig、networksetup -getinfo和airport命令:前者确认真实硬件接口,ifconfig提取各接口ip/mac/子网/ipv6,networksetup -getinfo返回服务级语义化信息(含网关/dns),airport -i专供wi-fi射频参数。

要快速掌握Mac当前所有网络接口的物理存在状态、IP地址、MAC地址、子网掩码和IPv6配置,必须组合使用多个终端命令分层提取——单一命令无法覆盖硬件层、协议层和服务层的全部信息。
列出所有物理接口名称与对应服务
先确认你实际插着或启用的网卡有哪些,排除虚拟接口(如lo0、awdl0、utun0)的干扰:
在终端中输入:networksetup -listallhardwareports,回车执行。
输出中每组三行代表一个真实硬件:Device(如en0)是系统分配的底层接口名,Hardware Port(如Wi-Fi)是用户可见的服务名,Type(如Wi-Fi/Ethernet)说明物理类型。这是后续所有操作的唯一可靠起点——【若跳过此步直接用ifconfig查en0,可能查到的是已拔掉网线却未释放的旧接口】。
查看每个活跃接口的原始网络配置
对上一步确认的每个Device(如en0、en1),运行ifconfig获取完整快照:
输入:ifconfig en0(把en0换成你要查的实际接口名),回车。
重点关注四类字段:
• status: active/inactive —— 判断该接口是否真正连通;
• inet行:IPv4地址+子网掩码(如inet 192.168.1.10 netmask 0xffffff00);
• ether行:MAC地址(Wi-Fi或以太网适配器的物理地址);
• inet6行:IPv6地址及scope标识(如fe80::1%en0)。
若想一次性筛选出所有活跃接口的IPv4地址,可执行:
ifconfig | grep -E "en[0-9]|inet " | grep -v "inet6" | awk '/en[0-9]/{iface=} /inet /{print iface, }'。
获取服务级语义化信息(IP/网关/DNS)
ifconfig给的是“机器语言”,而networksetup返回的是和系统设置里完全一致的“人类语言”:
输入:networksetup -getinfo "Wi-Fi"(引号内名称必须与“系统设置→网络”中显示的服务名严格一致)。
你会看到:
• IP address、Subnet mask、Router(即默认网关);
• DNS Servers(多行,每行一个IP,顺序即为查询优先级);
• Search Domains(域名搜索后缀)和DHCP lease time(如有)。
若服务名不是Wi-Fi,而是Ethernet、Thunderbolt Bridge等,请替换引号内名称后再执行。
补全Wi-Fi专属射频参数
只有airport命令能拿到无线连接的底层信号质量、信道、BSSID等信息,且仅对Wi-Fi接口有效:
第一步:确保airport软链存在(首次运行需执行):sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport;
第二步:运行:airport -I。
关键字段包括:
• SSID(当前连接的无线网络名);
• BSSID(路由器MAC地址);
• channel和frequency(当前使用的信道与频段,如5220 MHz → 5GHz);
• agrCtlRSSI(信号强度,负值越小表示信号越强,如-58)。
注意:airport命令不支持有线接口,对非Wi-Fi连接会直接报错退出。











