2012-09-24 5 views
0

IP 주소가 로컬 네트워크에 있는지 또는 내 objective-c (Xcode) 프로그램을 사용하지 않는지 알고 싶습니다. 그러나 문제는 모든 IP 주소 네트워크에 없다고하더라도) 결과는 성공입니다. 여기 코드가 있으며 IP 주소가 로컬 네트워크에 있는지 정확하게 찾는 방법을 알려주십시오.IP 주소가 로컬 네트워크에 있는지 알아 보는 방법 xcode

  bool success = false; 
      const char *host_name = [@"192.168.0.115" cStringUsingEncoding:NSASCIIStringEncoding]; 

      SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, 
                         host_name); 
      SCNetworkReachabilityFlags flags; 
      success = SCNetworkReachabilityGetFlags(reachability, &flags); 
      bool isAvailable = success && (flags & kSCNetworkFlagsReachable) && 
      !(flags & kSCNetworkFlagsConnectionRequired); 
      if (isAvailable) 
      { 
       //success 
       //connect to IP address      

      } 
      else 
      { 
       //Not success 
      } 
+2

이것은 실제로 핑이 아닙니다. 핑은이 코드에 대한 답 – Raptor

+0

에서 응답을 얻기 위해 ICMP 패킷을 보내는 것을 의미하지만, 나는 모든 IP에 도달 할 수없는 무엇입니까 주소가 로컬 네트워크에 있더라도 주소. – sushma

답변

1

사용이 코드

Reachability* reachability = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain]; // does not work with local IP, ARC is not used. 
NetworkStatus netStatus = [reachability currentReachabilityStatus]; 

netStatus 당신에게 상태를 제공 할 것입니다.

UPDATE는 주소를 확인할 수 없기 때문에

Reachability reachabilityWithHostName:는, 로컬 IP와 함께 작동하지 않습니다. 따라서이 솔루션은 질문에 대답하지 않습니다. 그러나 아래의 주석에서 @Kerberos에서 인용 한 것처럼이 ARC-enabled library을 사용하여 로컬 IP 주소와의 연결을 확인할 수 있습니다.

+0

를 알고 있다면 내가 어떤 일 회신을 only.Please 엑스 코드의 코드를 작성해야, IP 대상과 – sushma

+0

그렇다면 귀하의 장치는 IP에 실제로 액세스 할 수 있습니까? – Raptor

+0

예, 물론 그게 잘못된 출력을 보여줍니다. – sushma

관련 문제