Из подборки на superuser.com я освежил для себя подзабытую команду airport, с помощью которой можно работать с WiFi-подсистемой.

Утилита находится в дебрях фреймворка Apple80211:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport

Для упрощения работы можно сделать алиас:

$ vim ~/.bash_profile
alias ap='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport'

Сканирование сетей:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s
SSID    BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
XXXXXXX 00:00:00:00:00:a6  -65       2  N IL WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
YYYYYYY 00:00:00:00:00:ab  -34       7  Y AT WPA2(PSK/AES/AES)
  • SSID - service set identifier. Имя, которое идентифицирует беспроводную сеть
  • BSSID - basic service set identifier. В большинстве случаев это идентификатор Access Point и является её MAC-адресом
  • RSSI - Received signal strength indication. Мощность сигнала. Чем больше значение, тем сигнал мощнее (в примере сигнал сети YYYYYYY сильнее XXXXXXX).
  • CHANNEL - канал, на котором работает сеть. Для информации - в 802.11g есть всего три неинтерферирующих канала, поэтому если вокруг много активно работающих сетей, то будет наблюдаться снижение скорости и сбои в работе.
  • HT - я так и не нашёл, что это такое.
  • CC - страна, определяет частотный диапазон и конфигурируется для Access Point. IL - Израиль, AT - Австрия.
  • SECURITY (auth/unicast/group) - технология защиты, обмен ключами, шифрование.

Информация по текущей сети:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I
     agrCtlRSSI: -37
     agrExtRSSI: 0
    agrCtlNoise: -89
    agrExtNoise: 0
          state: running
        op mode: station
     lastTxRate: 145
        maxRate: 144
lastAssocStatus: 0
    802.11 auth: open
      link auth: wpa2-psk
          BSSID: 00:00:00:00:00:ab
           SSID: XXXXXXXXXXXX
            MCS: 15
        channel: 7

Почти все параметры говорят сами за себя (кроме lastTxRate и maxRate, которые я не могу объяснить внятно). Меня интересуют два параметра:

  • agrCtlRSSI - мощность сигнала, чем выше, тем лучше
  • agrCtlNoise - шум, чем меньше, тем лучше

Отключение от сети

$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z