Wie bekomme ich das verbundene WLAN-Netzwerk ssid?


8

Ich möchte die aktuell verbundene WLAN-Netzwerk-SSID in einem Bash-Skript erhalten. Ich versuche, ein Sicherungsskript zu schreiben, in dem das Skript eine Sicherung auf einem NAS-Server durchführt, wenn es mit meinem Heim-WLAN-Netzwerk verbunden ist. Ich habe mir den ip routeBefehl angesehen, aber er gibt nur einige grundlegende Informationen zurück - Geben Sie hier die Bildbeschreibung ein

Antworten:


4

Folgendes sollte das bieten, wonach Sie suchen, vorausgesetzt, Sie sind mit einem drahtlosen Gerät verbunden:

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

Es werden alle verbundenen Netzwerke zurückgegeben. Kann ich nur das verbundene Netzwerk finden?
Chan

Versuchen Sie es so und lassen Sie es mich wissen: nmcli -t -f active, ssid dev wifi | cut -d \ '-f2
Luis Alvarado

Immer noch viele Ergebnisse
Chan

Können Sie das, was Sie als Ausgabe sehen, einfügen?
Luis Alvarado

1
Das funktioniert bei mir : nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Jacob Evan Shreve


2

Dieser Befehl gibt die SSID des angeschlossenen WLAN-Adapters zurück (vorausgesetzt, Sie haben nur einen).

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

Es druckt auch eine Warnung auf dem Terminal, aber auf stderr, so dass es keine Rolle spielt

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

Wie wäre es iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?


0
nmcli -t -f NAME connection show --active
  • -t Macht die Ausgabe "knapp", so dass keine Überschriften vorhanden sind
  • -f NAME Zeigt nur die ssid an
  • --active Zeigt nur die aktiven Verbindungen an

Dies gibt den Namen der Verbindung und nicht die SSID aus. NAME entspricht normalerweise der SSID, ist aber nicht immer wahr. Der Name der NetworkManager-Verbindung kann in einen beliebigen Wert geändert werden.
j123b567

0

Ich habe es versucht:

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

0

Mit NetworkManager-1.8.4 wurde das richtige Ergebnis erzielt

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

Es gibt einen Grund für jeden Teil des Befehls

  • LANG=C liegt daran, dass wir grep für lokalisierte Zeichenfolgen verwenden, also erzwingen Sie Englisch
  • nmcli ... -f active,ssid ... bewirkt, dass ssid mit aktivem Status im Formular gedruckt wird yes:myssid no:otherssid
  • grep ^yes Wir möchten aktive Verbindungen filtern, aber keine SSIDs mit dem Text "Ja", daher ist dies der Grund dafür ^
  • cut ... -f2- druckt den Rest der Zeile nach dem ersten Trennzeichen, damit wir eine SSID mit Trennzeichen darin haben können
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.