Come ottenere la rete wifi connessa ssid?


8

Voglio ottenere le reti wifi attualmente connesse ssid in uno script bash. Sto provando a scrivere uno script di backup in cui lo script eseguirà un backup su un server NAS se è collegato alla mia rete wifi domestica. Ho esaminato il ip routecomando ma restituisce solo alcune informazioni di base - inserisci qui la descrizione dell'immagine

Risposte:


4

Quanto segue dovrebbe fornire ciò che stai cercando supponendo di essere connesso utilizzando 1 dispositivo wireless:

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

sta restituendo tutte le reti connesse. Posso trovare solo la rete connessa?
Chan,

Provalo in questo modo e fammi sapere: nmcli -t -f attivo, ssid dev wifi | cut -d \ '-f2
Luis Alvarado,

Restano ancora molti risultati
Chan,

Riesci a incollare ciò che vedi come output?
Luis Alvarado,

1
Questo funziona per me: nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve,


2

Questo comando restituisce il SSID dell'adattatore wireless connesso (supponendo che ne possiedi solo uno).

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

Stampa anche un avviso sul terminale ma su stderr, quindi non 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

1

Che ne dici iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?


0
nmcli -t -f NAME connection show --active
  • -t Rende l'output "conciso", quindi nessuna intestazione
  • -f NAME Mostra solo lo ssid
  • --active Mostra solo le connessioni attive

Ciò stampa il NOME della connessione e non l'SSID. NAME di solito corrisponde a SSID ma non è sempre vero. NAME della connessione NetworkManager può essere modificato in qualsiasi valore casuale.
j123b567,

0

Ho provato questo:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2

0

Con NetworkManager-1.8.4, questo ha prodotto il risultato corretto

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

C'è una ragione per ogni parte del comando

  • LANG=C è perché stiamo usando grep su stringa localizzata, quindi forza l'inglese
  • nmcli ... -f active,ssid ... causa la stampa di ssid con stato attivo nel modulo yes:myssid no:otherssid
  • grep ^yes vogliamo filtrare le connessioni attive, ma non gli SSID con il testo "sì", quindi è il motivo ^
  • cut ... -f2- stampa il resto della riga dopo il primo separatore in modo da poter avere SSID con separatore al suo interno
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.