Как узнать SSID подключенной сети Wi-Fi?

Как узнать SSID подключенной сети Wi-Fi?

Я хочу получить ssid подключенных в данный момент сетей wifi в скрипте bash. Я пытаюсь написать скрипт резервного копирования, который будет выполнять резервное копирование на сервер NAS, если он подключен к моей домашней сети wifi. Я изучил команду, ip routeно она возвращает только некоторую базовую информацию - введите описание изображения здесь

решение1

iwgetid -r

или

iwgetid wlan0 -r

решение2

Ниже приведено то, что вам нужно, если вы подключены с помощью одного беспроводного устройства:

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

решение3

Эта команда возвращает SSID подключенного беспроводного адаптера (при условии, что у вас есть только один).

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

Он также выводит предупреждение на терминал, но на stderr, так что это не имеет значения.

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

решение4

С NetworkManager-1.8.4 это дало правильный результат

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

Для каждой части команды есть причина.

  • LANG=Cпотому что мы используем grep для локализованной строки, поэтому принудительно переводим на английский
  • nmcli ... -f active,ssid ...заставляет печатать ssid с активным статусом в формеyes:myssid no:otherssid
  • grep ^yesмы хотим фильтровать активные соединения, но не SSID с текстом «да», поэтому это и есть причина^
  • cut ... -f2-печатает остаток строки после первого разделителя, чтобы мы могли получить SSID с разделителем внутри

Связанный контент