Można uzyskać dostęp do ustawień sieciowych systemu przez moduł SystemConfiguration
, który pomaga uzyskać dostęp do preferencji systemowych, które obecnie znajdują się w domyślnej lokalizacji /Library/Preferences/SystemConfiguration/preferences.plist
.
Od tego czasu możesz otrzymywać powiadomienia od SCDynamicStore
przez SCDynamicStoreNotifyValue(_:_:)
lub pobrać wartość przez SCDynamicStoreCopyValue(_:_:)
.
Przykład bezpośrednio odnośnika aktualną podstawową usługę sieciową:
var store = SCDynamicStoreCreate(nil, "Example" as CFString, nil, nil)
var global = SCDynamicStoreCopyValue(store, "State:/Network/Global/IPv4" as CFString)!
var pref = SCPreferencesCreate(nil, "Example" as CFString, nil)
var service = SCNetworkServiceCopy(pref!, global["PrimaryService"] as! CFString)
var interface = SCNetworkServiceGetInterface(service!)
SCNetworkInterfaceGetInterfaceType(interface!) /// Optional("IEEE80211") -> Wi-Fi
Albo stworzyć sklep dynamiczny z zwrotnego i ustawić klawisze powiadomień otrzymać informację, jak każdej usługi sieciowej podstawowy czas zmienia zgłoszenie będzie ogień:
var callback: SCDynamicStoreCallBack = { (store, _, _) in
/* Do anything you want */
}
var store = SCDynamicStoreCreate(nil, "Example" as CFString, callback, nil)
SCDynamicStoreSetNotificationKeys(store!, ["State:/Network/Global/IPv4"] as CFArray, nil)
Co jeśli jesteś podłączony do obu? – Sulthan
Możesz rozważyć framework CoreWLAN, jeśli programujesz na macOS – frank