Verwenden iw
Ich habe nicht nm-tool
installiert, 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 iw
Ausgang 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 egrep
die 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 ORS
ein einfaches Leerzeichen einfügen.
Wenn wir sort
diese 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.