首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CWNetwork安全模式信息

CWNetwork安全模式信息
EN

Stack Overflow用户
提问于 2013-08-08 10:13:38
回答 2查看 374关注 0票数 0

我正在尝试确定在10.7和更高版本上扫描的网络的安全类型和phyMode,但这些信息似乎在10.7版本之后被删除了。到目前为止,我使用的是CWNetwork.securityMode/phyMode的弃用API,但是在10.9中它已经被完全删除了,所以我无法确定它。最新的CWNetwork文档没有任何关于安全模式的信息。

有没有人能帮个忙。

编辑:似乎没有人用过它...

谢谢,国会议员。

EN

回答 2

Stack Overflow用户

发布于 2013-10-21 23:18:19

有点晚了,但您可能想要使用的是:

代码语言:javascript
复制
BOOL isOpenNetwork = [myNetwork supportsSecurity:kCWSecurityNone];

这是一种检查网络是否安全的简单方法。您可以在CoreWLANTypes.h (或以下)中查看所有安全类型:

代码语言:javascript
复制
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;
票数 2
EN

Stack Overflow用户

发布于 2015-05-20 17:36:59

使用supportsSecurity方法的解决方案对我来说效果不好:

代码语言:javascript
复制
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个人混合

不匹配。

我想知道确切的安全模式。而不是能够支持的安全模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18116861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档