2013-03-01 1 views
9

iOS에서 개인 핫스팟의 서브넷 마스크와 브로드 캐스트 주소를 찾는 방법을 찾아야합니다.iOS에서 개인 핫스팟의 서브넷 마스크 및 브로드 캐스트 주소를 얻는 방법

WiFi에 연결된 경우 다음과 같은 방법으로 기기의 IP 주소를 확인합니다. 그러나 Personal Hotspot에 대한 네트워크 속성을 얻는 방법을 알아낼 수는 없습니다.

+ (NSString *) localIPAddress 
{ 
    NSString *address = @"error"; 
    struct ifaddrs *interfaces = NULL; 
    struct ifaddrs *temp_addr = NULL; 
    int success = 0; 

    // retrieve the current interfaces - returns 0 on success 
    success = getifaddrs(&interfaces); 

    if (success == 0) 
    { 
     temp_addr = interfaces; 

     while(temp_addr != NULL) 
     { 
      // check if interface is en0 which is the wifi connection on the iPhone 
      if(temp_addr->ifa_addr->sa_family == AF_INET) 
      { 
       if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) 
       { 
        address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; 
       } 
      } 

      temp_addr = temp_addr->ifa_next; 
     } 
    } 

    freeifaddrs(interfaces); 

    return address; 
} 

답변

9
주소가 할당

, 단지 삽입 :

netmask = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr)];