2011-09-09 4 views
1

호스트 (예 : google.com)를 사용할 수 있는지 (또는 위/아래) 확인해야하는 iOS 앱을 만들고 있습니다. 나는이 코드를 사용하고 :iOS SDK에 호스트가 있는지 확인하십시오.

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 (ATM 아래에 있음)에 주소가 입력되어 있으면 주소도 zad0xsis.net입니다. 위조 된 주소를 입력하면 다운 된 것이므로 올바르게 작동 할 수 있으며 이상한 일들을 생각할 수 있습니다.

+0

Apple의 Reachability 샘플을 http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html에서 확인하셨습니까? – Tommy

답변

0

zad0xsis.net이 나에게 적합합니다.

Reachability는 ping 명령 줄과 동일한 원칙을 사용합니다 (사실 DNS Resolution + Ping).

웹 서버가 작동하는지 확인하려면 NSURLConnection을 사용해야한다고 생각합니다.

+0

알아, 대신 Reachability를 사용하여 더 좋은 방법을 찾았습니다. 감사합니다. – pmerino

0

터미널에서 ping zad0xsis.net을 (를) 사용해 보셨나요? 당신이 성공적인 응답을받는다면 나는 그것이 전혀 좋지 않은 네트워킹에 관한 것이라고 생각합니다.

관련 문제