1

プログラムでiOSアプリ内のiPadでVPN接続がオンかオフかを確認しようとしています。以下のコードは、iPad で VPN 接続がオフになっている場合でも、組織内の特定のホストに常に到達できることを示しています。しかし、「SCNetworkReachabilityGetFlags」API を使用して取得したフラグを出力すると、VPN オフと VPN オンの違いが示されました。VPN が接続されている場合は常にフラグに「3」が出力され、VPN がダウンしている場合はフラグに「2」が出力されます。

私の質問は

  1. このフラグを使用して VPN 接続を判別できますか?
  2. これらの数字の意味は何ですか?
  3. これらのフラグに関する詳細情報を教えてください。

以下は私のコードです:

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");
}
4

1 に答える 1