![wpa supplicant — проверка точки доступа перед подключением для проверки учетных данных](https://rvso.com/image/1568476/wpa%20supplicant%20%E2%80%94%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%20%D1%82%D0%BE%D1%87%D0%BA%D0%B8%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8%20%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.png)
Для недавнего проекта разработки мне нужно получить учетные данные WIFi от пользователя и отправить их в wpa_supplicant для инициирования подключения WiFI. Я написал утилиту на C++, которая выполняет работу, но не так, как надо. Моя утилита настраивает и пытается инициировать подключение, используя заданные учетные данные. Если все прошло успешно, то проблем нет. Если не получается, я удаляю конфигурацию и жду действительных учетных данных от пользователя. И в качестве поддержки этого модуля я проверяю подключение к Интернету через соответствующий интерфейс в фоновом режиме, работает ли он или нет.
Хотя этот метод работает отлично, я чувствую, что это не правильный способ. Я просмотрел конфигурацию wpa_supplicant (довольно длинный документ), но не смог найти никакого решения. Все, что я хочу сделать, это перед настройкой supplicant проверить AP и убедиться, что учетные данные верны. Я знаю, что это невозможно без полного подключения к AP, но если есть способ проверить это без настройки supplicant, этого достаточно
Моя установка работает на Debian Stretch
решение1
Все, что я хочу сделать, это перед настройкой просителя проверить точку доступа и убедиться, что учетные данные верны.
Используйте следующую команду для подключения к точке доступабез написания файла конфигурации:
wpa_supplicant -i <Interface> -c(wpa_passphrase "Your-AP-here" Your-password-here)
Используйте -B
опцию для запуска команды в фоновом режиме.
Используйте grep
для фильтрации результатов или просто запустите, dhclient
чтобы убедиться в успешном подключении.