¿Cómo obtener el ssid de la red wifi conectada?

¿Cómo obtener el ssid de la red wifi conectada?

Quiero obtener el ssid de las redes wifi actualmente conectadas en un script bash. Estoy intentando escribir un script de respaldo donde el script realizará un 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í

Respuesta1

iwgetid -r

o

iwgetid wlan0 -r

Respuesta2

Lo siguiente debería proporcionarle lo que está buscando, suponiendo que esté conectado mediante 1 dispositivo inalámbrico:

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

Respuesta3

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 una advertencia en la 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

Respuesta4

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=Ces porque estamos usando grep en una cadena localizada, así que fuerce el inglés
  • nmcli ... -f active,ssid ...hace que se imprima ssid con estado activo en el formularioyes:myssid no:otherssid
  • grep ^yesqueremos filtrar las conexiones activas, pero no los SSID con el texto "sí", por lo que ese es el motivo de^
  • cut ... -f2-imprime el resto de la línea después del primer separador para que podamos tener un SSID con separador

información relacionada