Como obter o SSID da rede Wi-Fi conectada?

Como obter o SSID da rede Wi-Fi conectada?

Quero obter o SSID das redes Wi-Fi atualmente conectadas em um script bash. Estou tentando escrever um script de backup em que o script realizará um backup em um servidor NAS se estiver conectado à minha rede Wi-Fi doméstica. Examinei o ip routecomando, mas ele retorna apenas algumas informações básicas - insira a descrição da imagem aqui

Responder1

iwgetid -r

ou

iwgetid wlan0 -r

Responder2

O seguinte deve fornecer o que você está procurando, supondo que esteja conectado usando 1 dispositivo sem fio:

nmcli -t -f ssid dev wifi| cut -d\' -f2

Responder3

Este comando retorna o SSID do adaptador sem fio conectado (assumindo que você tenha apenas um).

iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/'

Ele também imprime aviso no terminal, mas no stderr, então não importa

remi@host~$id:~$ id=$(iwconfig | grep ESSID | sed -e 's/.*ESSID:"\(.*\)".*/\1/')
eth0      no wireless extensions.
lo        no wireless extensions.
virbr0    no wireless extensions.
tap0      no wireless extensions.

remi@host:~$ echo $id
CISPI

Responder4

Com NetworkManager-1.8.4, isso produziu o resultado correto

LANG=C nmcli -t -f active,ssid dev wifi | grep ^yes | cut -d: -f2-

Há uma razão para cada parte do comando

  • LANG=Cé porque estamos usando grep na string localizada, então force o inglês
  • nmcli ... -f active,ssid ...faz com que imprima o ssid com status ativo no formulárioyes:myssid no:otherssid
  • grep ^yesqueremos filtrar conexões ativas, mas não SSIDs com texto "sim", então esse é o motivo^
  • cut ... -f2-imprime o resto da linha após o primeiro separador para que possamos ter o SSID com o separador nele

informação relacionada