必须使用绝对路径调用airport工具执行全信道被动扫描:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s,才能完整捕获所有SSID(含隐藏网络、同名不同BSSID等),否则因PATH缺失导致命令失败或结果为空。

要在Mac上通过终端命令行完整列出周围所有广播SSID(包括弱信号、隐藏网络旁的同名AP、双频同名但不同BSSID的条目),必须调用系统原生airport工具并确保路径准确、权限就绪,否则会提示“command not found”或返回空结果。
执行完整扫描获取全部SSID列表
打开“应用程序”→“实用工具”→“终端”。
输入以下命令并回车:/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s。
该命令强制系统无线模块进行一次全信道被动扫描(约3–5秒),捕获所有接收到的Beacon帧中的SSID字段——哪怕该SSID为空(即隐藏网络),只要其BSSID被侦听到,就会在输出中占一行,SSID列显示为(none)。注意:不加绝对路径会失败,因为airport不在默认PATH中。
过滤只看SSID名称(不含BSSID等其他字段)
方法一:提取首列(纯SSID)并去重
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk 'NR>1 {print $1}' | sort -u。
这一步跳过表头,只取每行第一个字段(SSID),再用sort -u去重。但要注意:同名SSID可能来自不同BSSID(如双频合一路由器),去重后会丢失拓扑信息,仅适合快速核对名称是否存在。
方法二:保留空SSID条目(识别隐藏网络线索)
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk 'NR>1 && $1 ~ /^$|\(none\)/ {print "HIDDEN: " $2}' | sort -u。
当某行SSID为空或显示“(none)”时,说明该BSSID未广播SSID——它极大概率是隐藏网络。此命令把对应BSSID拎出来标为HIDDEN,方便后续手动连接。
按信号强度排序并限定只显示活跃SSID
第一步:用awk提取SSID、RSSI、BSSID三列,并排除表头
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk 'NR>1 {print $1, $3, $2}'。
第二步:按RSSI(第三列数值)降序排列,信号越强(负值越小)越靠前
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk 'NR>1 {print $1, $3, $2}' | sort -k2,2n。
第三步:筛掉RSSI低于-85dBm的条目(基本不可连),保留真实可用SSID
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk 'NR>1 && $3 > -85 {print $1, $3, $2}' | sort -k2,2n。
这一步过滤掉几乎无法建立稳定连接的微弱信号,避免被大量噪点干扰判断。RSSI高于-85dBm是实际可用的底线阈值,低于该值即使显示在列表里,握手也常失败。

















