Я пытаюсь проверить, включено или выключено подключение VPN на iPad внутри приложения iOS программно. В приведенном ниже коде всегда говорится, что данный хост в моей организации всегда доступен, даже если на iPad отключено VPN-подключение. Но когда я напечатал флаг, полученный с помощью API «SCNetworkReachabilityGetFlags», он показал разницу между включенным и выключенным 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");
}