加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在OS X中显示与Swift的所有可用WIFI连接

发布时间:2020-12-14 05:47:57 所属栏目:百科 来源:网络整理
导读:我正在尝试显示所有可用的WIFI连接.它不起作用.这是我的代码: import Foundationimport CoreWLANvar cwInterface = CWInterface()do { let routers = try cwInterface.scanForNetworksWithSSID(nil) print(routers)} catch let error as NSError { print("E
我正在尝试显示所有可用的WIFI连接.它不起作用.这是我的代码:
import Foundation
import CoreWLAN

var cwInterface = CWInterface()

do {
    let routers = try cwInterface.scanForNetworksWithSSID(nil)
    print(routers)
} catch let error as NSError {
    print("Error: (error.localizedDescription)")
}

我没有得到任何结果.我做错了什么?

如果使用接口名称初始化CWInterface,它将起作用,例如“en1”.

但最好不使用带编码的名称,因此我们还将使用CWWiFiClient.sharedWiFiClient().interface()返回默认的WIFI接口.

管理所有这些的类的示例:

class Discovery {

    var currentInterface: CWInterface
    var interfacesNames: [String] = []
    var networks: Set<CWNetwork> = []

    // Failable init using default interface
    init?() {
        if let defaultInterface = CWWiFiClient.sharedWiFiClient().interface(),name = defaultInterface.interfaceName {
            self.currentInterface = defaultInterface
            self.interfacesNames.append(name)
            self.findNetworks()
        } else {
            return nil
        }
    }

    // Init with the literal interface name,like "en1"
    init(interfaceWithName name: String) {
        self.currentInterface = CWInterface(interfaceName: name)
        self.interfacesNames.append(name)
        self.findNetworks()
    }

    // Fetch detectable WIFI networks
   func findNetworks() {
        do {
            self.networks = try currentInterface.scanForNetworksWithSSID(nil)
        } catch let error as NSError {
            print("Error: (error.localizedDescription)")
        }
    }

}

使用默认界面调用它:

if let discovery = Discovery() {
    print(discovery.networks)
    for network in discovery.networks {
        print(network.ssid!)
    }
}

或者使用接口名称:

let discovery = Discovery(interfaceWithName: "en1")
let results = discovery.networks

结果包含所有扫描的网络:

[<CWNetwork: 0x608000001bd0> [ssid=SomeNetworkName,bssid=xxxx,security=WPA Enterprise,rssi=xx,channel=<CWChannel: 0x600000004fb0> [channelNumber=11(2GHz),channelWidth={20MHz}],ibss=0],etc]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读