2017-07-18 31 views
0

マシンが接続されているSSIDを調べようとしています。私が見つけたものはすべてiOS用で無駄です。以下のコードを使用して、「CNCopyCurrentNetworkInfo 'はiOS固有のものなので利用できません」というエラーが表示されます。 macOSに相当するものは何ですか?SwiftでのWiFiネットワークの取得3

スウィフト3:

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)! 
      } 
     } 
    } 

答えて

0

私が使用現在のSSIDを取得するには以下のコードを入力してください、インターネット接続を確認した後。

import CoreWLAN 

let wifiNetwork = CWWiFiClient.shared().interface()!.ssid()! 
0

クイン、アップルのネットワーキングの神からの利用答え:ここにコピー

https://forums.developer.apple.com/thread/50302

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 
    } 
} 
+0

CNCopyCurrentNetworkInfoは、[ドキュメント](https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo)に従ってiOSとtvOSでのみ使用可能です。私はどこでもmacOSのためのアナログを見つけることができません。 – user2625833

関連する問題