Swift - 获取wifi安全类型

12

有没有办法使用Swift检测WiFi连接是否安全?是否可以获取WiFi的安全类型,如WPA、WEP等?

我以这种方式获取SSID名称:

func getWiFiSsid() -> String? {

var ssid: String?

if let interfaces = CNCopySupportedInterfaces() as NSArray?
   for interface in interfaces {
       if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {           
                ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
                break
       }
   }
}
return ssid
}

谢谢。


1
我需要为iPhone应用程序添加广告,但CoreWLAN仅适用于OSX。 - Gianluca
@Gianluca,有什么进展吗?我也得做同样的事情。 - Imran
你检查过这个吗? https://dev59.com/vFrUa4cB1Zd3GeqPhSxR - Niharika
你能试试这个吗?https://dev59.com/e1wZ5IYBdhLWcg3wNOCI - BHAVIK
3个回答

2

在iOS15中使用NEHotspotNetwork

NEHotspotNetwork.fetchCurrent { network in
   print(network.securityType)
}

NEHotspotNetwork 无法区分 WPA2 和 WPA3。 - unobatbayar
有没有其他更精确的框架? - unobatbayar
在 MacOS 上,我们可以使用 CWInterface,但是在 iOS 上我们不能使用它... - unobatbayar
1
@unobatbayar 你可以使用isSecure来检查它。根据安全访问无线网络的说明,WPA/WPA2的安全性为false - yycking

1

1

苹果的一些框架对于普通的AppStore开发者来说是无法使用的,这些框架被称为私有框架

它们存在于iOS中,但是和其他框架(如CoreLocation、UIKit等)不同,没有得到官方文档的支持。通过逆向工程的方法,可以学习如何使用这些框架,但最重要的是,由于它们是禁止使用的,如果您提交了一个使用私有框架的应用,它肯定会被拒绝

提取WiFi安全类型的API包含在私有框架中,因此您不能在AppStore应用程序中使用它。

尽管如此,如果您想尝试私有框架,并且只是为个人使用,可以访问此处,那里将找到所有私有框架的完整列表。

请记住,它们的使用并不直观。如果您需要入门指南,可以参考BeeTee,其中演示了如何使用私有框架BluetoothManager


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接