Ethernet / WLAN-Netzwerkänderung erkennen

8

Ich möchte erkennen, wenn sich das Netzwerk von Ethernet zu WLAN (oder WLAN zu Ethernet) ändert. Ich möchte einen Beobachter haben, der mich über diese Änderung informiert.

Erreichbarkeit ist nicht gut genug - es liefert immer ReachableViaWiFi für beide Fälle.

P.S - Es gab vorher einige Fragen zu diesem Thema, aber keine von ihnen hat eine gute Antwort, und da diese Fragen mehr als ein Jahr alt sind, findet vielleicht jemand schon heraus, wie man es macht

    
Roee84 11.01.2017, 12:07
quelle

2 Antworten

5

Sie können auf die Netzwerkeinstellungen des Systems über das Modul SystemConfiguration zugreifen, das Ihnen dabei hilft, die Systemeinstellungen zu erreichen, die sich im Standardspeicherort /Library/Preferences/SystemConfiguration/preferences.plist befinden.

Seitdem können Sie Benachrichtigungen von SCDynamicStore bis SCDynamicStoreNotifyValue(_:_:) erhalten oder Wert von SCDynamicStoreCopyValue(_:_:) abrufen.

Beispiel für die direkte Suche des aktuellen primären Netzwerkdienstes:

%Vor%

Oder erstellen Sie einen dynamischen Speicher mit Rückruf und legen Sie Benachrichtigungsschlüssel fest, um Benachrichtigungen zu erhalten, sobald sich der primäre Netzwerkdienst ändert und die Benachrichtigung ausgelöst wird:

%Vor%     
Legendecas 07.02.2017 15:30
quelle
2

Sie könnten ein kleines Skript bash unter launchd ausführen, das die Schnittstellen überwacht, an denen Sie interessiert sind, und etwas startet, wenn sie sich ändern.

Sagen Sie, Ihre kabelgebundene Verbindung ist en0 , Sie könnten Folgendes ausführen:

%Vor%

Speichere dieses Skript als netmon und mach es mit chmod +x netmon

ausführbar %Vor%     
Mark Setchell 07.02.2017 13:35
quelle

Tags und Links