Verwenden iw
Ich habe nicht nm-toolinstalliert, also benutze ich iw.
Dieser Befehl sortiert die Zugriffspunkte nach der Signalstärke, die am stärksten ist:
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
Jeder Befehl erklärte:
iw dev wlan0 scan: Nach Access Points suchen, die über die Schnittstelle erreichbar sind wlan0
egrep "signal:|SSID:": Ruft die Leitungen mit Signalstärke und den SSIDs vom iwAusgang ab. Die Ausgabe sieht jetzt so aus:
Signal: -77,00 dBm
SSID: nameOfAccessPoint1
Signal: -71,00 dBm
SSID: nameOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //": Reduziere egrepdie Ausgabe auf:
-77,00 dBm
nameOfAccessPoint1
-71,00 dBm
nameOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}': Bringen Sie die Signalstärke und die SSID in dieselbe Leitung. Genauer gesagt, wenn die Zeilennummer ( NR) gerade ist, dh wenn wir in einer Zeile sind, die einen Zugangspunkt zeigt, sollte das Trennzeichen ( ORS) für den Ausgabesatz ein Zeilenumbruch sein. Andernfalls befinden wir uns auf der Leitung, die die Signalstärke enthält, und schließen uns der Leitung an, indem wir ORSein einfaches Leerzeichen einfügen.
Wenn wir sortdiese Ausgabe machen, erhalten wir eine Liste mit Signalstärken und Zugangspunkten, wobei der Zugangspunkt mit dem stärksten Signal oben angezeigt wird:
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
Achtung: Einige Access Points können erweiterte Funktionen haben: Erweiterte Funktionen: * SSID-Liste
Wenn Sie also "SSID:" anstelle von "SSID" verwenden, können Sie diese zusätzliche Ausgabe vermeiden, bei der der Befehl andernfalls fehlschlagen würde.