【发布时间】:2013-03-11 14:22:38
【问题描述】:
我正在尝试以编程方式在 iOS 应用程序内的 iPad 中检查 VPN 连接是打开还是关闭。 下面的代码总是说我组织中的给定主机总是可以访问的 即使 iPad 中的 VPN 连接已关闭。但是,当我打印使用“SCNetworkReachabilityGetFlags”api 获得的标志时,它显示 VPN 关闭和 VPN 开启之间存在差异。每当连接 VPN 时,标志打印“3”,当 VPN 关闭时,标志打印“2”。
我的问题是
- 我可以使用这个标志来确定 VPN 连接吗?
- 这些数字有什么意义?
- 谁能提供有关这些标志的更多信息?
以下是我的代码:
bool success = false;
const char *host_name = [@"<<host name here>>"
cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
NSLog(@"success=%d",flags);
bool isAvailable = success && (flags & kSCNetworkFlagsReachable) &&
!(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
NSLog(@"Host is reachable: %d", flags);
}else{
NSLog(@"Host is unreachable");
}
【问题讨论】:
标签: ios ipad vpn reachability