![WPA-Supplicant – Vor der Verbindung wird der AP abgefragt, um die Anmeldeinformationen zu prüfen](https://rvso.com/image/1568476/WPA-Supplicant%20%E2%80%93%20Vor%20der%20Verbindung%20wird%20der%20AP%20abgefragt%2C%20um%20die%20Anmeldeinformationen%20zu%20pr%C3%BCfen.png)
Für ein aktuelles Entwicklungsprojekt muss ich die WLAN-Anmeldeinformationen vom Benutzer abrufen und an wpa_supplicant übermitteln, um die WLAN-Verbindung herzustellen. Ich habe ein Dienstprogramm in C++ geschrieben, das die Aufgabe erfüllt, aber nicht richtig. Mein Dienstprogramm richtet die Verbindung ein und versucht, sie mit den angegebenen Anmeldeinformationen herzustellen. Wenn dies erfolgreich ist, gibt es kein Problem. Wenn es fehlschlägt, entferne ich die Konfiguration und warte auf gültige Anmeldeinformationen des Benutzers. Und als Unterstützung für dieses Modul überprüfe ich im Hintergrund über die entsprechende Schnittstelle die Internetverbindung, ob sie aktiv ist oder nicht.
Obwohl diese Methode einwandfrei funktioniert, habe ich das Gefühl, dass es nicht die richtige Vorgehensweise ist. Ich habe die wpa_supplicant-Konfiguration durchgesehen (was ein ziemlich langes Dokument ist), konnte aber keine Lösung finden. Ich möchte lediglich vor der Konfiguration des Supplicant den AP prüfen und sicherstellen, dass die Anmeldeinformationen korrekt sind. Ich weiß, dass dies ohne vollständige Verbindung zum AP nicht möglich ist, aber wenn es eine Möglichkeit gibt, dies zu überprüfen, ohne den Supplicant zu konfigurieren, ist das ausreichend
Mein Setup läuft auf Debian Stretch
Antwort1
Ich möchte lediglich vor der Konfiguration des Supplicant den AP prüfen und sicherstellen, dass die Anmeldeinformationen korrekt sind.
Verwenden Sie den folgenden Befehl, um eine Verbindung zu einem AP herzustellenohne eine Konfigurationsdatei zu schreiben:
wpa_supplicant -i <Interface> -c(wpa_passphrase "Your-AP-here" Your-password-here)
Verwenden Sie -B
die Option, um den Befehl im Hintergrund auszuführen.
Verwenden Sie es grep
, um die Ergebnisse zu filtern, oder führen Sie es einfach aus dhclient
, um sicherzustellen, dass Ihre Verbindung erfolgreich hergestellt wurde.