iOS中的VPN检测

2019-02-22  本文已影响15人  冰宫无凉

判断系统是否链接VPN

其实代码就可以直接判断。废话不多说。直接上代码;

- (NSString *)isVPNConnected {
    
    NSDictionary *dict = CFBridgingRelease(CFNetworkCopySystemProxySettings());
    NSArray *keys = [dict[@"__SCOPED__"]allKeys];
    for (NSString *key in keys) {
        if ([key rangeOfString:@"tap"].location != NSNotFound ||
            [key rangeOfString:@"tun"].location != NSNotFound ||
            [key rangeOfString:@"ppp"].location != NSNotFound||
            [key rangeOfString:@"ipsec"].location != NSNotFound ||){
            return @"已链接";
        }
    }
    return @"未链接";
}

这只能判断手机是否链接上VPN,不能判断链接是那个APP链接VPN的。在这里有一个想法,就是先判断手机是否链接VPN之后再ping一下,如果能ping通的话,就默认为是本公司的VPN,否则就不是的。因为公司没有这方面要求时间也有限就没有去做拓展。欢迎大家能够提供更优解

上一篇下一篇

猜你喜欢

热点阅读