Como obter o ssid da rede wifi conectada?

8

Desejo obter o ssid das redes wifi atualmente conectadas em um script bash. Estou tentando escrever um script de backup em que o script executará um backup em um servidor NAS se estiver conectado à minha rede wifi doméstica. Eu olhei para o ip routecomando, mas ele retorna apenas algumas informações básicas - insira a descrição da imagem aqui

Chan
fonte

Respostas:

4

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

nmcli -t -f ssid dev wifi| cut -d\' -f2
Luis Alvarado
fonte
está retornando todas as redes conectadas. Posso encontrar apenas a rede conectada?
Chan
Tente assim e me avise: nmcli -t -f active, ssid dev wifi | cortar -d \' -f2
Luis Alvarado
Ainda com muitos resultados retornados
Chan
Você pode colar o que está vendo como saída?
Luis Alvarado
1
Isso funciona para mim: nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve
16
iwgetid -r

ou

iwgetid wlan0 -r
nmset
fonte
Funciona perfeitamente no Ubuntu 16.0.4 !!
Atrujillofalcon 25/04
para python sudo iwgetid -rfunciona para mim. (raspberry pi)
snr - Reinstate Monica
2

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

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

Também imprime um aviso no terminal, mas no stderr, para que não importe

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
Rémi
fonte
1

Que tal iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?

jdthood
fonte
0
nmcli -t -f NAME connection show --active
  • -t Torna a saída 'concisa' para que não haja cabeçalhos
  • -f NAME Mostra apenas o ssid
  • --active Mostra apenas as conexões ativas
John Mehorter
fonte
Isso imprime o NOME da conexão e não o SSID. NAME geralmente corresponde ao SSID, mas nem sempre é verdadeiro. NOME da conexão do NetworkManager pode ser alterado para qualquer valor aleatório.
J123b567 06/06
0

Eu tentei isso:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2
John Pateta
fonte
0

Com o 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 todas as partes do comando

  • LANG=C é porque estamos usando grep na string localizada, então force o inglês
  • nmcli ... -f active,ssid ... faz com que imprimir ssid com status ativo no formulário yes:myssid no:otherssid
  • grep ^yes queremos filtrar conexões ativas, mas não SSIDs com o texto "yes", por isso é o motivo de ^
  • cut ... -f2- imprime o restante da linha após o primeiro separador, para que possamos ter o SSID com o separador
j123b567
fonte