Використання iw
У мене не nm-toolвстановлено, тому я використовую iw.
Ця команда сортує точки доступу за силою сигналу, найсильнішим спочатку:
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
Кожна команда пояснювала:
iw dev wlan0 scan: Сканування точок доступу, доступних через інтерфейс wlan0
egrep "signal:|SSID:": Отримайте лінії з силою сигналу та SSID з iwвихідних даних. Вихід виглядає приблизно так:
сигнал: -77,00 дБм
SSID: nameOfAccessPoint1
сигнал: -71,00 дБм
SSID: nameOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //": Зменшіть egrepвихід до цього:
-77,00 дБм
nameOfAccessPoint1
-71,00 дБм
nameOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}': Приведіть потужність сигналу та SSID в одну лінію. Більш конкретно, коли номер рядка ( NR) парний, тобто ми знаходимося на лінії, що показує точку доступу, роздільником запису виводу ( ORS) повинен бути розрив рядка. В іншому випадку ми знаходимося на лінії, що містить силу сигналу, тому ми приєднуємось до лінії, зробивши ORSпростий пробіл.
Якщо ми отримаємо sortцей висновок, ми закінчимо список сильних сигналів та точок доступу, показуючи точку доступу з найсильнішим сигналом зверху:
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
Остерігайтеся: Деякі точки доступу можуть мати розширені можливості: Розширені можливості: * Список SSID
Отже, перехоплення "SSID:" замість "SSID" допомагає уникнути цього додаткового виходу, що призведе до відмови команди в іншому випадку.