有什么方法可以通过Mac OS X上的Shell脚本获取当前无线网络的SSID?
Answers:
命令
/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}'
awk
使用:
作为分隔符,你会得到你的整个SSID:awk -F':' '/ SSID/ {print $2}'
哪里没有需要重新发明的轮子?
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
cut
您可以运行networksetup -getairportnetwork en1 | awk -F": " '{print $2}'
,无论标签包含“机场”还是“ Wi-Fi”,它都可以运行。
e1
,似乎在此答案中就是这种情况。其他人都有e0
。当然,这是一个简单的编辑,但是如果您尝试使其通用,则@Chetan的答案似乎更容易
networksetup -getairportnetwork en1 | cut -d ' ' -f 4
可以正常运行,而不依赖于操作系统版本
以下内容已在OS X上进行了测试,并打印出没有任何硬编码列宽的SSID:
system_profiler SPAirPortDataType | awk -F':' '/Current Network Information:/ {
getline
sub(/^ */, "")
sub(/:$/, "")
print
}'
本质上,这将获取的输出system_profiler SPAirPortDataType
,并在Current Network Information:
修剪前导空白和尾部冒号之后打印行(因为SSID可以包含:
s)。
system_profiler
在我的OS X 10.8上有一点延迟。networksetup
需要机场接口名称。我更喜欢airport | sed -n 's/^ *SSID: //p'
airport --getinfo | sed -n 's/^ *SSID: //p'