Get wireless SSID through shell script on Mac OS X

后端 未结 3 1110
無奈伤痛
無奈伤痛 2020-12-07 12:02

Is there any way to get the SSID of the current wireless network through a shell script on Mac OS X?

相关标签:
3条回答
  • 2020-12-07 12:37

    The following has been tested on OS X and prints the SSID without any hard-coded column widths:

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

    Essentially, this takes the output of system_profiler SPAirPortDataType, and prints the line after "Current Network Information:" trimming leading whitespace and the trailing colon (since SSIDs can contain :s).

    0 讨论(0)
  • 2020-12-07 12:38

    The command

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

    will give you details about your current wireless network connection.

    To get specifically the SSID, use this command:

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

    To retrieve SSID names that might have colons as well as spaces:

    /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I  | awk -F' SSID: '  '/ SSID: / {print $2}'
    
    0 讨论(0)
  • 2020-12-07 12:41

    Where isn't there a wheel in need of re-inventing?

    networksetup -getairportnetwork en1 | cut -c 25-
    

    is what you'd use on 10.6, 10.7 changed the "Hardware Port" name from "Airport" to "Wi-Fi", and therefore you'd cut off one less letter,

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

    In case the device is named something other than en1, one needs to first get the correct device name, than the corresponding SSID:

    networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}' | xargs networksetup -getairportnetwork
    
    0 讨论(0)
提交回复
热议问题