Access Airport signal data
I want to be able to write the current list of Wifi networks in airport, and their respective strengths, to a file. I would like to use some sort of bash script to do this, but I am unsure how to access the data in Airport.
Solution 1:
Open Terminal.app and enter:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I
You have to be connected to a wireless signal. The output will look similar to the following:
agrCtlRSSI: -64
agrExtRSSI: 0
agrCtlNoise: -91
agrExtNoise: 0
state: running
op mode: station
lastTxRate: 130
maxRate: 144
lastAssocStatus: 0
802.11 auth: open
link auth: wpa2-psk
BSSID: 28:cf:da:b1:6:77
SSID: 🍀
MCS: 15
channel: 6
Most of the data is self explanatory. agrCtlRSSI
is the signal strength; the closer it is to 0
, the stronger the signal. agrCtlNoise
is the noise on your Wi-Fi signal; you want this as low as possible. Finally, maxRate
is the maximum rate at which your Wi-Fi signal can run at, and lastTxRate
is the last transmitted rate.
You can also use this Terminal command to scan the airwaves for other Wi-Fi signals to connect to (I believe this is what you were looking for):
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
This returns something like:
SSID BSSID RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
🍀 28:cf:da:b1:06:78 -73 100,+1 Y GB WPA2(PSK/AES/AES)
dlink 00:19:5b:de:4e:36 -90 6 N -- WEP
FON_BELGACOM 06:19:70:1e:c3:6e -77 1 N BE NONE
bbox2-f279 00:19:70:1e:c3:6e -77 1 N BE WEP
telenet-6F8E6 5c:35:3b:1e:88:20 -91 11 Y -- WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
🍀 28:cf:da:b1:06:77 -65 6 Y GB WPA2(PSK/AES/AES)
If you’ll be using these commands a lot, you might want to add /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources
to your $PATH
, like this:
# Place this in your `~/.bash_profile`
export PATH="/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources:$PATH"
That way, you can simply use the airport
command without typing the full path to the binary every time:
airport -I
airport -s
Source