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

8

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

Chan
источник

Ответы:

4

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

nmcli -t -f ssid dev wifi| cut -d\' -f2
Луис Альварадо
источник
он возвращает все подключенные сети. Могу ли я найти только подключенную сеть?
Чен
Попробуйте вот так и дайте мне знать: nmcli -t -f active, ssid dev wifi | cut -d \ '-f2
Луис Альварадо
По-прежнему возвращает много результатов
Чан
Вы можете вставить то, что вы видите в качестве выхода?
Луис Альварадо
1
Это работает для меня nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2 .
Джейкоб Эван Шрив
16
iwgetid -r

или

iwgetid wlan0 -r
nmset
источник
Отлично работает на Ubuntu 16.0.4 !!
atrujillofalcon
для питона sudo iwgetid -rу меня работает. (Raspberry Pi)
snr - Восстановить Монику
2

Эта команда возвращает 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
Рэй
источник
1

Как насчет iwconfig wlan0 | sed -e '/ESSID/!d' -e 's/.*ESSID:"/"/'?

jdthood
источник
0
nmcli -t -f NAME connection show --active
  • -t Делает вывод "кратким", поэтому заголовки отсутствуют
  • -f NAME Показывает только ssid
  • --active Показывает только активные соединения
Джон Мехортер
источник
Это печатает ИМЯ соединения, а не SSID. ИМЯ обычно соответствует SSID, но это не всегда так. ИМЯ соединения NetworkManager можно изменить на любое случайное значение.
j123b567
0

Я попробовал это:

    iwconfig wlan0 | grep ESSID | cut -d\" -f2
Джон Гуфи
источник
0

С 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 с разделителем в нем
j123b567
источник