Я думаю, что лучший способ проверить доступность адреса хоста - проверить результаты запроса NSURL.
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:reqURL]];
NSURLResponse *resp = nil;
NSError *error = nil;
NSData *response = [NSURLConnection sendSynchronousRequest: theRequest returningResponse: &resp error: &error];
NSString *responseString = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
Используя этот бит кода, если ваше устройство не может получить доступ к предоставленному URL-адресу, оно предоставляет некоторые выходные данные для переменной ошибки, если оно может получить доступ к запросу URL-адреса, ошибка равна Nil.
Достижимость дает положительный результат, даже если ваши URL-пакеты могут отправляться с вашего устройства и никогда не достигать хост-сервера.