Onde está a ferramenta de varredura WiFi analisável para Linux?

2

No Linux, iw e iwlist fornecem muitas informações quando pesquisam redes WiFi disponíveis. Eu diria que é muito informação. 2.308 linhas são muito para um humano analisar. Concedido, eu estou em um prédio ocupado, mas tanto mais que a saída detalhada é realmente um obstáculo para mim.

$ sudo iw dev wlp8s0 scan | wc -l
2308

Eu preferiria uma saída muito mais simples. Uma tabela relativamente breve que mostra uma visão geral concisa dos pontos de acesso próximos. Essa saída mostraria apenas os tipos de campos (SSID, intensidade do sinal, tipo de criptografia) que se pode esperar de um utilitário WiFi da GUI, mas no terminal.

Parece que usuários semelhantes já passaram antes de mim nessa mesma busca, e que há vários níveis de esforço para escrever scripts e programas complicados para analisar a saída de verificação WiFi mais simples de ferramentas sem fio do Linux, como iw . 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14

Quase todas as respostas que encontrei para esse problema sugerem analisar a saída de ferramentas como iw e iwlist usando grep , sed e awk em várias combinações, mas isso não parece como uma ótima resposta. Especialmente desde que iw declara claramente que sua saída deve ser .

Do NOT screenscrape this tool, we don't consider its output stable.

Eu diria que nmcli vem bem perto do que eu quero, exceto que acho que é difícil instalar NetworkManager apenas pela conveniência que ele oferece via nmcli . Além disso, iw e iwlist parecem mais onipresentes do que nmcli no meu Googling.

A saída de verificação WiFi do ifconfig no FreeBSD parece perfeita . Não tenho certeza se essa implementação é comum em todos os tipos de BSD, mas é o tipo exato de ferramenta que eu espero no Linux.

30.3.4.1.1. How to Find Access Points simple, clean, output from BSD version of ifconfig for WiFi scanning

Existe uma ferramenta de estoque / padrão semelhante para quase todas as versões do Linux que examinam redes WiFi e lista uma saída simples como acima?

    
por Will Haley 12.05.2018 / 23:11

1 resposta

3

A maioria das plataformas Linux vem com wpa_supplicant , que pode ser usado de forma independente ou por outros "frameworks" como o NetworkManager, e sua ferramenta de CLI wpa_cli . Eu não sei sobre métodos mais recentes do systemd (que tendem a substituir todo o resto ...).

# 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
[...]

ou não interativamente:

# 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]    
[...]

(apenas para informação, este é um ssid oculto).

    
por 12.05.2018 / 23:30

Tags