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

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

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


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

1

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


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

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.