我正在尝试确定在10.7和更高版本上扫描的网络的安全类型和phyMode,但这些信息似乎在10.7版本之后被删除了。到目前为止,我使用的是CWNetwork.securityMode/phyMode的弃用API,但是在10.9中它已经被完全删除了,所以我无法确定它。最新的CWNetwork文档没有任何关于安全模式的信息。
有没有人能帮个忙。
编辑:似乎没有人用过它...
谢谢,国会议员。
发布于 2013-10-21 23:18:19
有点晚了,但您可能想要使用的是:
BOOL isOpenNetwork = [myNetwork supportsSecurity:kCWSecurityNone];这是一种检查网络是否安全的简单方法。您可以在CoreWLANTypes.h (或以下)中查看所有安全类型:
enum {
kCWSecurityNone = 0,
kCWSecurityWEP = 1,
kCWSecurityWPAPersonal = 2,
kCWSecurityWPAPersonalMixed = 3,
kCWSecurityWPA2Personal = 4,
kCWSecurityPersonal = 5,
kCWSecurityDynamicWEP = 6,
kCWSecurityWPAEnterprise = 7,
kCWSecurityWPAEnterpriseMixed = 8,
kCWSecurityWPA2Enterprise = 9,
kCWSecurityEnterprise = 10,
kCWSecurityUnknown = NSIntegerMax,
};
typedef NSInteger CWSecurity;发布于 2015-05-20 17:36:59
使用supportsSecurity方法的解决方案对我来说效果不好:
main...
{
CWNetwork *network = [self.scanResults objectAtIndex:row];
NSLog(@"%@", network);
NSLog(@"%@", [self securityStringForNetwork:network]);
}
- (NSString*)securityStringForNetwork:(CWNetwork *)network;
{
NSString *securityString = @"Unknown";
if ([network supportsSecurity:kCWSecurityNone])
securityString = @"None";
else if ([network supportsSecurity:kCWSecurityWEP])
securityString = @"WEP";
else if ([network supportsSecurity:kCWSecurityWPAPersonal])
securityString = @"WPA Personal";
else if ([network supportsSecurity:kCWSecurityWPAPersonalMixed])
securityString = @"WPA Personal Mixed";
else if ([network supportsSecurity:kCWSecurityWPA2Personal])
securityString = @"WPA2 Personal";
else if ([network supportsSecurity:kCWSecurityPersonal])
securityString = @"Personal";
else if ([network supportsSecurity:kCWSecurityDynamicWEP])
securityString = @"Dynamic WEP";
else if ([network supportsSecurity:kCWSecurityWPAEnterprise])
securityString = @"WPA Enterprise";
else if ([network supportsSecurity:kCWSecurityWPAEnterpriseMixed])
securityString = @"WPA Enterprise Mixed";
else if ([network supportsSecurity:kCWSecurityWPA2Enterprise])
securityString = @"WPA2 Enterprise";
else if ([network supportsSecurity:kCWSecurityEnterprise])
securityString = @"Enterprise";
return securityString;
}结果是:
[ssid=里约热内卢-摩尔曼斯克,bssid=54:04:a6:e9:b3:4e,security=WPA2 Personal,rssi=-48,channel= channelNumber=11(2 2GHz),channelWidth={20 2GHz},ibss=0]
和
WPA个人混合
不匹配。
我想知道确切的安全模式。而不是能够支持的安全模式。
https://stackoverflow.com/questions/18116861
复制相似问题