通过Mac OS X上的Shell脚本获取无线SSID


Answers:


125

命令

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I

将为您提供有关当前无线网络连接的详细信息。

要专门获取SSID,请使用以下命令:

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk -F: '/ SSID/{print $2}'

要检索可能包含冒号和空格的SSID名称:

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I  | awk -F' SSID: '  '/ SSID: / {print $2}'

当我执行第二个命令时,它无法正常工作。我连接的SSID中有空格,该命令仅显示第一个单词。
Mark Szymanski 2010年

1
@Mark:我已经更新了第二条命令,使其也可以用于带有空格的SSID。希望这可以帮助!
Chetan 2010年

1
告诉awk使用:作为分隔符,你会得到你的整个SSID:awk -F':' '/ SSID/ {print $2}'
Johnsyweb

1
@Johnsyweb:根据802.11标准,SSID可能还包含字段分隔符“:”
右腹

43

哪里没有需要重新发明的轮子?

networksetup -getairportnetwork en1 | cut -c 25-

这就是您在10.6、10.7上使用的名称,将“硬件端口”的名称从“机场”更改为“ Wi-Fi”,因此您减少了一个字母,

aru$ networksetup -getairportnetwork en1 | cut -c 24-
Yorimichi

如果设备的名称不是en1,则需要首先获取正确的设备名称,而不是相应的SSID:

networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}' | xargs networksetup -getairportnetwork

11
注意Johnsyweb上面关于re:awk;的评论。而不是使用它,cut您可以运行networksetup -getairportnetwork en1 | awk -F": " '{print $2}',无论标签包含“机场”还是“ Wi-Fi”,它都可以运行。
larsks 2012年

5
缺点是您必须知道您的无线局域网接口名称。我在具有内置以太网(分配为e0)的Mac上的Mac上看到了e1 e1,似乎在此答案中就是这种情况。其他人都有e0。当然,这是一个简单的编辑,但是如果您尝试使其通用,则@Chetan的答案似乎更容易
nhed 2014年

2
networksetup -getairportnetwork en1 | cut -d ' ' -f 4可以正常运行,而不依赖于操作系统版本
aymericbeaumet

1
甚至使用“ networksetup -getairportnetwork en1 | awk'{print $ NF}'”,甚至更好,因为它总是获取最后一个字段(以空格分隔),因此无需计数。
Michele Dall'Agata,2016年

1
这是应该接受的答案,因为在非交互模式下运行脚本时,使用/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport不能使用。
et071385

7

以下内容已在OS X上进行了测试,并打印出没有任何硬编码列宽的SSID:

system_profiler SPAirPortDataType | awk -F':' '/Current Network Information:/ {
    getline
    sub(/^ */, "")
    sub(/:$/, "")
    print
}'

本质上,这将获取的输出system_profiler SPAirPortDataType,并在Current Network Information:修剪前导空白和尾部冒号之后打印行(因为SSID可以包含:s)。


3
system_profiler在我的OS X 10.8上有一点延迟。networksetup需要机场接口名称。我更喜欢airport | sed -n 's/^ *SSID: //p'
youfu

谢谢。在macOS Sierra上airport --getinfo | sed -n 's/^ *SSID: //p'
RENTBOY

适用于不是PITA的Apple网络适配器,除非您在具有破裂网卡的Macbook上使用USB NIC。
ipatch
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.