¿Cómo obtener la red wifi conectada ssid?

8

Quiero obtener las redes wifi actualmente conectadas ssid en un script bash. Estoy tratando de escribir un script de respaldo donde el script realizará una copia de respaldo en un servidor NAS si está conectado a la red wifi de mi hogar. He examinado el ip routecomando pero solo devuelve información básica: ingrese la descripción de la imagen aquí

Chan
fuente

Respuestas:

4

Lo siguiente debe proporcionar lo que está buscando, suponiendo que esté conectado con 1 dispositivo inalámbrico:

nmcli -t -f ssid dev wifi| cut -d\' -f2
Luis Alvarado
fuente
está devolviendo todas las redes conectadas. ¿Puedo encontrar solo la red conectada?
Chan
Pruébelo así y hágamelo saber: nmcli -t -f activo, ssid dev wifi | cut -d \ '-f2
Luis Alvarado
Todavía devuelve muchos resultados
Chan
¿Puedes pegar lo que estás viendo como salida?
Luis Alvarado
1
Esto funciona para mí: nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve
16
iwgetid -r

o

iwgetid wlan0 -r
nmset
fuente
¡Funciona perfecto en Ubuntu 16.0.4!
atrujillofalcon
para Python sudo iwgetid -rme funciona. (Raspberry pi)
snr - Reinstate Monica
2

Este comando devuelve el SSID del adaptador inalámbrico conectado (suponiendo que solo tenga uno).

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

También imprime advertencia en el terminal pero en stderr, por lo que no 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
Rémi
fuente
1

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

jdthood
fuente
0
nmcli -t -f NAME connection show --active
  • -t Hace que la salida sea 'concisa' para que no haya encabezados
  • -f NAME Muestra solo el ssid
  • --active Muestra solo las conexiones activas
John Mehorter
fuente
Esto imprime el NOMBRE de la conexión y no el SSID. NOMBRE generalmente corresponde con SSID pero no siempre es cierto. El NOMBRE de la conexión de NetworkManager se puede cambiar a cualquier valor aleatorio.
j123b567
0

Intenté esto:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2
John Goofy
fuente
0

Con NetworkManager-1.8.4, esto produjo el resultado correcto

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

Hay una razón para cada parte del comando

  • LANG=C es porque estamos usando grep en una cadena localizada, así que forza el inglés
  • nmcli ... -f active,ssid ... hace que se imprima ssid con estado activo en el formulario yes:myssid no:otherssid
  • grep ^yes queremos filtrar las conexiones activas, pero no los SSID con el texto "sí", por lo que es la razón de ^
  • cut ... -f2- imprime el resto de la línea después del primer separador para que podamos tener SSID con separador
j123b567
fuente