1. 程式人生 > >Swift3.0: 獲取Wifi SSID

Swift3.0: 獲取Wifi SSID

使用SystemConfiguration Api 可以獲取當前連線的 Wifi SSID、BSSID資訊,swift3.0的寫法如下:

首先要匯入SystemConfiguration.framework,然後匯入標頭檔案:

import SystemConfiguration
import SystemConfiguration.CaptiveNetwork

方法:

func getUsedSSID() -> String {
    let interfaces = CNCopySupportedInterfaces()
    var ssid = ""
    if interfaces != nil {
        let interfacesArray = CFBridgingRetain(interfaces) as! Array<AnyObject>
        if interfacesArray.count > 0 {
            let interfaceName = interfacesArray[0] as! CFString
            let ussafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
            if (ussafeInterfaceData != nil) {
                let interfaceData = ussafeInterfaceData as! Dictionary<String, Any>
                ssid = interfaceData["SSID"]! as! String
            }
        }
    }
    return ssid
}

如果沒有連線 wifi 返回 nil。能獲取到的資訊有:

▿ 3 elements
▿ 0 : 2 elements
    - .0 : "SSID"
    - .1 : PA_WLAN_MA
▿ 1 : 2 elements
    - .0 : "BSSID"
    - .1 : 24:de:c6:cf:8a:fd
▿ 2 : 2 elements
    - .0 : "SSIDDATA"
    - .1 : <50415f57 4c414e5f 4d41>

可能有專案需要獲取 Wifi 列表,這在 iOS9 以前是需要使用私有 Api 的,iOS9以後,有更好的方式來處理,參考

iOS 9 NetworkExtension使用