La mayoría de las plataformas Linux se envían con wpa_supplicant
, que se puede usar de forma independiente o por otros "marcos" como NetworkManager, y su herramienta CLI wpa_cli
. No sé acerca de los métodos systemd más nuevos (que tienden a reemplazar todo lo demás... ).
# wpa_cli
wpa_cli v2.6
[...]
Selected interface 'wlan0'
Interactive mode
> scan
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND
> scan_results
bssid / frequency / signal level / flags / ssid
xx:xx:xx:xx:xx:xx 2412 -39 [WPA2-PSK-CCMP][ESS]
xx:c7:29:xx:xx:xx 2462 -56 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] SomeSSID
xx:e9:dd:xx:xx:xx 2412 -57 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] OtherSSID
xx:8e:78:xx:xx:xx 2412 -65 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] AthirdSSID
[...]
o de forma no interactiva:
# wpa_cli scan_results
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
xx:xx:xx:xx:xx:xx 2412 -40 [WPA2-PSK-CCMP][ESS]
[...]
(solo para información, este es un ssid oculto ).
Я видел, что кто-то предоставил BusyBox-совместимую версию здесь . Я усовершенствовал его, чтобы он выводился в формате JSON, а также был совместим с юникодом. Пожалуйста, проверьте это .
Вот пример преобразования вывода iw
в JSON.
wifiscan wlan0 | jq
Результат
[
{
"mac": "c2:4b:e6:1e:95:b3",
"ssid": "Angel 的 Chromecast",
"freq": "2412",
"sig": "-62.00 dBm",
"sig%": "63.3333",
"wpa": "n",
"wpa2": "y",
"wep": "n",
"tkip": "n",
"ccmp": "y"
},
{
"mac": "1c:49:7b:30:23:3f",
"ssid": "TAO",
"freq": "2412",
"sig": "-56.00 dBm",
"sig%": "73.3333",
"wpa": "n",
"wpa2": "y",
"wep": "n",
"tkip": "n",
"ccmp": "y"
}
]