linux wifi: как определить «подключенное» состояние интерфейса?

253
MoonCactus

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

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

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

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

0

2 ответа на вопрос

1
grawity

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

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

  • CTRL-EVENT-EAP-STARTED: EAP-аутентификация запущена (EAP-запрос / идентификация получена)
  • CTRL-EVENT-EAP-SUCCESS: аутентификация EAP успешно завершена
  • CTRL-EVENT-CONNECTED: указывает на успешно завершенную аутентификацию и на то, что соединение для передачи данных теперь включено
Да, это похоже на сделку. До сих пор мне удавалось избегать каких-либо скомпилированных вещей и использовать только оболочку, и для этого, похоже, требуется C и связь с его API. Но это не настоящая проблема, так что еще раз спасибо за указание на правильное решение. MoonCactus 6 лет назад 0
Какой API? API сокета libc? Это будет присутствовать в вашей системе. grawity 6 лет назад 0
0
GAD3R

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

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

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

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

Спасибо, но это именно то, что я не хотел делать (включить ведение журнала и необходимость опроса);) MoonCactus 6 лет назад 0
Вам не нужно _poll_ файлы, вы можете использовать inotify, чтобы следовать за ними ... grawity 6 лет назад 0
конечно, но это все еще файл журнала, и наблюдатель запускается в каждой строке MoonCactus 5 лет назад 0

Похожие вопросы