NetworkManager
tem um excelente back-end de linha de comando chamado nmcli
. O pequeno inconveniente é que alguns comandos em 15.04 diferem da versão 14.04 do nmcli
.
Ubuntu 14.04
nmcli -f NAME con status
permite listar nomes das conexões atuais. Por exemplo,
$ nmcli -f NAME,DEVICES con status
NAME DEVICES
Serg-Wifi wlan0
Agora, para listar detalhes específicos sobre uma conexão, podemos fazer nmcli con list id "WifiName"
. Para ser mais específico, estamos procurando uma linha que diga key-mgmt
.
$ nmcli con list id "SergWifi" | awk '/key-mgmt/ {print }'
wpa-psk
Assim, sabemos que este wifi usa proteção WPA.
Outra dica é a seguinte linha:
802-11-wireless.security: 802-11-wireless-security
Agora, como colocamos isso no mesmo script?
Se você tiver apenas uma conexão estabelecida,
nmcli con list id "$(nmcli -t -f NAME con status)" | awk '/key-mgmt/||/802-11-wireless\.security/ {print }'
Aqui, manipulamos apenas nmcli
com -t flag para nos fornecer apenas o nome do ponto de acesso sem o cabeçalho bonito e o usamos nos colchetes de substituição de parâmetro $( . . .)
e fornecemos como entrada nmcli con list id
para lista de dados sobre esse ponto de acesso. Finalmente, awk
apenas filtra a linha necessária.
Se você tiver conexão Wi-Fi estabelecida, mas também conectada à Ethernet, nmcli -f NAME con status
produzirá várias linhas. Sugiro filtrar o wifi dessa lista, com nmcli -f NAME,DEVICES con status | awk '/wlan0/ {print }'
. O restante do processamento seria o mesmo acima.
Ubuntu 15.04
Os comandos acima traduzem em 15.04 da seguinte forma:
-
nmcli -t -f NAME,DEVICE con status | awk -F':' '/wlan0/{print }'
para obter o nome da conexão estabelecida em wlan0
-
nmcli con show "ConnectionName"
para listar detalhes sobre sua conexão estabelecida.
Nota: no Ubuntu 14.04 há nm-tool
que lista informações sobre suas conexões atuais em um formato prontamente organizado, mas não está presente em 15.04, então eu sugiro que você estude e brinque com por conta própria