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

Mar*_*ski 60 macos shell

有没有办法通过Mac OS X上的shell脚本获取当前无线网络的SSID?

Che*_*tan 105

命令

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I
Run Code Online (Sandbox Code Playgroud)

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

要明确获取SSID,请使用以下命令:

/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk -F: '/ SSID/{print $2}'
Run Code Online (Sandbox Code Playgroud)


Sac*_*ous 40

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

networksetup -getairportnetwork en1 | cut -c 25-
Run Code Online (Sandbox Code Playgroud)

是您在10.6上使用的,10.7将"硬件端口"名称从"机场"更改为"Wi-Fi",因此您减少了一封信,

aru$ networksetup -getairportnetwork en1 | cut -c 24-
Yorimichi
Run Code Online (Sandbox Code Playgroud)

  • 注意上面的Johnsyweb评论re:awk; 而不是使用`cut`你可以运行`networksetup -getairportnetwork en1 | awk -F":"'{print $ 2}'`,无论标签是否包含"Airport"或"Wi-Fi",它都能正常工作. (10认同)
  • 这里的缺点是你必须知道你的wlan接口名称.我在mac上看到e1有一个内置的以太网(分配了e0),使得WiFi接口`e1`在这个答案中似乎就是这种情况.其他人有'e0`.这当然是一个简单的编辑,但是如果你试图让它变得通用,那么@Chetan的答案似乎更容易 (4认同)
  • `networksetup -getairportnetwork en1 | cut -d ' ' -f 4` 工作正常,它不依赖于操作系统版本 (2认同)

Joh*_*web 6

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

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

本质上,它接受输出system_profiler SPAirPortDataType,并在" Current Network Information:"修剪前导空格和尾部冒号(因为SSID可以包含:s)之后打印行.

  • `system_profiler`在我的OS X 10.8上有一个小延迟.`networksetup`需要机场接口名称.我更喜欢`机场| sed -n's/^*SSID:// p'` (3认同)