iOS获取WiFi名称以及Mac地址

2018-11-13  本文已影响49人  追寻那一米阳光

首先导入系统库

import SystemConfiguration.CaptiveNetwork

获取连接WiFi名称

func getWIFINmae() -> NSString {
        var ssid = "Not Found"
        //
        let myArray:NSArray = CNCopySupportedInterfaces()!
       
        for sub in myArray {
            if let dict:NSDictionary = CFBridgingRetain(CNCopyCurrentNetworkInfo(sub as! CFString)) as? NSDictionary{
                ssid = (dict["SSID"] as? String)!
                /*
                 dict :
                 ▿ 0 : 2 elements
                 - key : SSIDDATA
                 - value : <e68a80e6 9cafe983 a8>
                 ▿ 1 : 2 elements
                 - key : BSSID
                 - value : Mac地址
                 ▿ 2 : 2 elements
                 - key : SSID
                 - value : WiFi名称
                 */
            }
        }
        return ssid as NSString;
    }

获取Mac地址

func getWiFiMacName() -> NSString {
        var macIp = "Not Found"
        let myArrary:NSArray =  CNCopySupportedInterfaces()!
        for sub in myArrary {
            if let dict = CFBridgingRetain(CNCopyCurrentNetworkInfo(sub as! CFString)){
                macIp = (dict["BSSID"] as? String)!
            }
        }
        return macIp as NSString
    }

CNCopySupportedInterfaces()
返回所监视的所有网络接口的名称。网络接口名称,作为CFStringRef对象的数组。所有权遵循Create Rule。
CFBridgingRetain(_:)
将Objective-C指针转换为Core Foundation指针,并将所有权转移给调用方。
CNCopyCurrentNetworkInfo
返回给定网络接口的当前网络信息
包含接口当前网络信息的字典。所有权遵循Create规则。Create Rule介绍
SSID网络的服务集标识符(SSID),编码为字符串。
源码地址

上一篇下一篇

猜你喜欢

热点阅读