プログラムで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");
}