有没有办法在Mac OS X上通过shell脚本获取当前无线网络的SSID?
这个命令
/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}'
有哪些领域不需要重复造轮子?
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}'
命令,这将适用于标签中是否包含“Airport”或“Wi-Fi”。 - larskse1
,这似乎是本答案的情况。其他人可能是 e0
。这当然很容易编辑,但如果你试图让它更通用,@Chetan 的答案似乎更简单。 - nhednetworksetup -getairportnetwork en1 | cut -d ' ' -f 4
运行良好,不依赖于操作系统版本。 - aymericbeaumetsystem_profiler SPAirPortDataType | awk -F':' '/Current Network Information:/ {
getline
sub(/^ */, "")
sub(/:$/, "")
print
}'
system_profiler SPAirPortDataType
的输出,并打印出 "Current Network Information:
" 后面的一行,去掉前导空格和尾随冒号(因为 SSID 可能包含 :
)。system_profiler
在我的OS X 10.8上有一点延迟。networksetup
需要机场接口名称。我更喜欢使用airport | sed -n 's/^ *SSID: //p'
。 - youfuairport --getinfo | sed -n 's/^ *SSID: //p'
。 - thisleejones
awk
使用:
作为分隔符,你就可以得到完整的SSID:awk -F':' '/ SSID/ {print $2}'
- johnsywebawk -F' SSID: ' '/ SSID: / { print "x",$2,"x"}'
。 - A.D.