iOS8管理VPN服务
iOS8仅支持IPSec 和 IKEv2 协议
NEVPNManager *manager = [NEVPNManager sharedManager]; [manager loadFromPreferencesWithCompletionHandler:^(NSError *error) { if(error) { NSLog(@"Load error: %@", error); } else { // No errors! The rest of your codes goes here... } }]; //添加IPSec协议连接 NEVPNProtocolIPSec *p = [[NEVPNProtocolIPSec alloc] init]; p.username = @"[Your username]"; p.passwordReference = [VPN user password from keychain]; p.serverAddress = @"[Your server address]"; p.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret; p.sharedSecretReference = [VPN server shared secret from keychain]; p.localIdentifier = @"[VPN local identifier]"; p.remoteIdentifier = @"[VPN remote identifier]"; p.useExtendedAuthentication = YES; p.disconnectOnSleep = NO; //On-demand 这里可以设置规则,哪些网络连接使用此vpn(http://www.derman.com/blogs/Example-iOS-VPN-OnDemand-Rules) [[NEVPNManager sharedManager] setOnDemandEnabled:YES]; NSMutableArray *rules = [[NSMutableArray alloc] init]; NEOnDemandRuleConnect *connectRule = [NEOnDemandRuleConnect new]; [rules addObject:connectRule]; [[NEVPNManager sharedManager] setOnDemandRules:array]; //设置vpn名字 [manager setLocalizedDescription:@"[You VPN configuration name]"]; //保存设置 [manager saveToPreferencesWithCompletionHandler:^(NSError*error) { if(error) { NSLog(@"Save error: %@", error); } else { NSLog(@"Saved!"); } }]; //连接到vpn NSError *startError; [[NEVPNManager sharedManager].connection startVPNTunnelAndReturnError:&startError]; if(startError) { NSLog(@"Start error: %@", startError.localizedDescription); } else { NSLog(@"Connection established!"); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。