Macos 在Swift 3中检索WiFi网络
我正试图找出机器连接的SSID。我发现的一切都是iOS版的,毫无用处。使用下面的代码,我得到一个错误,声明:“'CNCopyCurrentNetworkInfo'不可用”,因为它是特定于iOS的。macOS的等价物是什么 Swift 3:Macos 在Swift 3中检索WiFi网络,macos,swift3,wifi,Macos,Swift3,Wifi,我正试图找出机器连接的SSID。我发现的一切都是iOS版的,毫无用处。使用下面的代码,我得到一个错误,声明:“'CNCopyCurrentNetworkInfo'不可用”,因为它是特定于iOS的。macOS的等价物是什么 Swift 3: import SystemConfiguration.CaptiveNetwork var wifiNetwork = "Unknown" if let interfaces = CNCopySupportedInterfaces()
import SystemConfiguration.CaptiveNetwork
var wifiNetwork = "Unknown"
if let interfaces = CNCopySupportedInterfaces() {
for i in 0..<CFArrayGetCount(interfaces){
let interfaceName: UnsafeRawPointer = CFArrayGetValueAtIndex(interfaces, i)
let rec = unsafeBitCast(interfaceName, to: AnyObject.self)
let unsafeInterfaceData = CNCopyCurrentNetworkInfo("\(rec)" as CFString)
if let unsafeInterfaceData = unsafeInterfaceData as? Dictionary<AnyHashable, Any> {
wifiNetwork = (unsafeInterfaceData["SSID"] as? String)!
}
}
}
import SystemConfiguration.CaptiveNetwork
var wifiNetwork=“未知”
如果let interfaces=CNCopySupportedInterfaces(){
对于0中的i…使用苹果网络之神奎因的答案:
复制于此:
func currentSSIDs() -> [String] {
guard let interfaceNames = CNCopySupportedInterfaces() as? [String] else {
return []
}
return interfaceNames.flatMap { name in
guard let info = CNCopyCurrentNetworkInfo(name as CFString) as? [String:AnyObject] else {
return nil
}
guard let ssid = info[kCNNetworkInfoKeySSID as String] as? String else {
return nil
}
return ssid
}
}
在检查internet连接后,我使用下面的代码获取当前SSID
import CoreWLAN
let wifiNetwork = CWWiFiClient.shared().interface()!.ssid()!
根据,CNCopyCurrentNetworkInfo仅在iOS和tvOS中可用。我在任何地方都找不到macOS的类似版本。