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

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

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


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

1

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


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

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.