В Linux существует ли (низкоуровневый) способ узнать, пытается ли беспроводной интерфейс в настоящее время подключиться к сети?

Мне не удалось найти что-то полезное в этом отношении в /sys/class/net/<iface>/operstate и братьях и сестрах, которые в большинстве случаев обеспечивают стабильные состояния или статистику.

Я знаю, что журнал wpa_supplicant точно сообщает, что происходит (и даже больше), но мне не удается увидеть какие-либо параметры для запроса демона в режиме реального времени, и я не хочу включать ведение журнала и опрашивать состояние, так как я на маленькой платформе (урезанный Armbian 4.9.82-ti-r102, SIP Octavo).

По той же причине я не буду использовать любой сетевой менеджер, конечно.

2 ответа2

1

Вы можете делать то, что делают эти сетевые администраторы, и использовать интерфейс управления сокетами wpa_supplicant (или эквивалентный ему сервис D-Bus) для получения оперативных уведомлений.

Например, в документах по интерфейсу управления упоминаются следующие события:

  • CTRL-EVENT-EAP-STARTED: EAP-аутентификация запущена (EAP-запрос / идентификация получена)
  • CTRL-EVENT-EAP-SUCCESS: аутентификация EAP успешно завершена
  • CTRL-EVENT-CONNECTED: указывает на успешно завершенную аутентификацию и на то, что соединение для передачи данных теперь включено
0

Я не хочу включать ведение журнала и опросить состояние, поскольку я нахожусь на маленькой платформе

Используйте wpa_supplicant с опцией -f для создания файла журнала.

 -f output file
          Log  output  to  specified  file instead of stdout. 

затем используйте grep чтобы проверить, пытается ли беспроводной интерфейс подключиться к сети из файла журнала. см. мой ответ на U & L.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .