Jak uzyskać połączony SSID z siecią Wi-Fi?

8

Chcę uzyskać aktualnie podłączone sieci WiFi SSID w skrypcie bash. Próbuję napisać skrypt kopii zapasowej, w którym skrypt wykona kopię zapasową na serwerze NAS, jeśli jest podłączony do mojej domowej sieci Wi-Fi. Zajrzałem do ip routepolecenia, ale zwraca ono tylko podstawowe informacje - wprowadź opis zdjęcia tutaj

Chan
źródło

Odpowiedzi:

4

Poniższe informacje powinny zawierać to, czego szukasz, zakładając, że masz połączenie za pomocą 1 urządzenia bezprzewodowego:

nmcli -t -f ssid dev wifi| cut -d\' -f2
Luis Alvarado
źródło
zwraca wszystkie połączone sieci. Czy mogę znaleźć tylko podłączoną sieć?
Chan,
Spróbuj tego w ten sposób i daj mi znać: nmcli -t -f active, ssid dev wifi | cut -d \ '-f2
Luis Alvarado
Wciąż zwraca wiele wyników
Chan
Czy możesz wkleić to, co widzisz jako wynik?
Luis Alvarado,
1
Działa to dla mnie nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve
16
iwgetid -r

lub

iwgetid wlan0 -r
nmset
źródło
Działa idealnie na Ubuntu 16.0.4 !!
atrujillofalcon
bo python sudo iwgetid -rdziała dla mnie. (raspberry pi)
snr
2

To polecenie zwraca identyfikator SSID podłączonego adaptera bezprzewodowego (zakładając, że masz tylko jeden).

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

Wyświetla również ostrzeżenie na terminalu, ale na stderr, więc nie ma to znaczenia

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
źródło
1

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

jdthood
źródło
0
nmcli -t -f NAME connection show --active
  • -t Sprawia, że ​​wyjście jest „zwięzłe”, więc nie ma nagłówków
  • -f NAME Pokazuje tylko SSID
  • --active Pokazuje tylko aktywne połączenia
John Mehorter
źródło
Spowoduje to wydrukowanie NAZWA połączenia, a nie SSID. NAME zwykle odpowiada SSID, ale nie zawsze jest to prawda. NAZWA połączenia NetworkManager można zmienić na dowolną losową wartość.
j123b567
0

Próbowałem tego:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2
John Goofy
źródło
0

W przypadku NetworkManager-1.8.4 uzyskano poprawny wynik

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

Istnieje powód dla każdej części polecenia

  • LANG=C to dlatego, że używamy grep na zlokalizowanym ciągu, więc wymuś angielski
  • nmcli ... -f active,ssid ... powoduje wydrukowanie ssid z aktywnym statusem w formie yes:myssid no:otherssid
  • grep ^yes chcemy filtrować aktywne połączenia, ale nie identyfikatory SSID z tekstem „tak”, więc to jest powód ^
  • cut ... -f2- drukuje resztę wiersza po pierwszym separatorze, abyśmy mogli mieć SSID z separatorem w nim
j123b567
źródło