linux wifi: wie erkennt man den "verbindungszustand" einer schnittstelle?

352
MoonCactus

Gibt es unter Linux eine (niedrigere) Möglichkeit, zu wissen, ob eine drahtlose Schnittstelle gerade versucht, sich mit einem Netzwerk zu verbinden?

Ich habe in dieser Hinsicht nichts Nützliches bei /sys/class/net/<iface>/operstateGeschwistern gefunden, die zumeist stabile Zustände oder Statistiken liefern.

Ich weiß, wpa_supplicantlog sagt genau, was los ist (und mehr), aber ich sehe keine Parameter, um den Dämon in Echtzeit abzufragen, und ich möchte die Protokollierung nicht aktivieren und den Status abfragen, da ich auf einer kleinen Plattform bin ( Armbian 4.9.82-ti-r102 (Octavo SIP).

Aus dem gleichen Grund werde ich natürlich keinen Netzwerkmanager verwenden.

0

2 Antworten auf die Frage

1
grawity

Sie können tun, was diese Netzwerkmanager tun, und die Socket- Steuerungsschnittstelle (oder den entsprechenden D-Bus-Dienst) von wpa_supplicant verwenden, um Live-Benachrichtigungen zu erhalten.

Beispielsweise erwähnen Dokumente in der Steuerschnittstelle die folgenden Ereignisse:

  • CTRL-EVENT-EAP-STARTED: EAP-Authentifizierung gestartet (EAP-Request / Identität erhalten)
  • CTRL-EVENT-EAP-SUCCESS: Die EAP-Authentifizierung wurde erfolgreich abgeschlossen
  • STRG-EVENT-CONNECTED: Zeigt die erfolgreich abgeschlossene Authentifizierung an und die Datenverbindung ist jetzt aktiviert
Ja, das scheint der Deal zu sein. Bislang habe ich es geschafft, alles kompilierte Material zu vermeiden und nur die Shell zu verwenden, und dies erfordert, dass C und Link mit seiner API verbunden sind. Aber es ist sowieso kein echtes Problem, also nochmals vielen Dank, dass Sie mich auf eine gültige Lösung hingewiesen haben. MoonCactus vor 6 Jahren 0
Welche API? Die libc-Socket-API? Das wird in Ihrem System vorhanden sein, egal was. grawity vor 6 Jahren 0
0
GAD3R

Ich möchte die Protokollierung nicht aktivieren und den Status abfragen, da ich mich auf einer kleinen Plattform befinde

Verwenden Sie diese Option wpa_supplicantmit der -fOption zum Erstellen einer Protokolldatei.

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

Verwenden Sie dann, um grepzu überprüfen, ob eine drahtlose Schnittstelle derzeit versucht, eine Verbindung zu einem Netzwerk über die Protokolldatei herzustellen. siehe meine Antwort auf U & L .

Danke aber genau das wollte ich nicht machen (Protokollierung ermöglichen und Polling durchführen);) MoonCactus vor 6 Jahren 0
Sie müssen keine _poll_-Dateien haben, Sie können sie mit inotify verfolgen ... grawity vor 6 Jahren 0
sicher, aber es ist immer noch eine Protokolldatei und der Beobachter wird in jeder Zeile ausgelöst MoonCactus vor 6 Jahren 0