Я делаю приложение для iOS, в котором мне нужно было бы проверить, доступен ли хост, например, google.com (или вверх / вниз). Я использовал этот код:
NSString *host = theTextField.text;
bool success = false;
const char *host_name = [host
cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
bool isAvailable = success && (flags & kSCNetworkFlagsReachable) &&
!(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
status.text = @"The host is up! :)";
} else {
status.text = @"The host is down! :(";
}
}
Но у меня такое чувство, что оно не работает так, как должно. Например, если я ввожу google.com
, он говорит, что он работает, хорошо, но если я ввожу URL моей веб-страницы (которая не работает в банкомате), он также говорит, что он работает (адрес zad0xsis.net
). Если я ввожу фальшивый адрес, он говорит, что он не работает, поэтому он может работать правильно, и я могу думать о странных вещах IDK.