2013-03-01 13 views
9

iOS'ta kişisel hotspot'umun alt ağ maskesi ve yayın adresini bulmanın bir yolunu bulmalıyım.iOS'ta Kişisel Bağlantı Noktasının Alt Ağ Maskesi ve Yayın Adresi Nasıl Alınır

Kablosuz ağa bağlıysa, cihazın IP adresini öğrenmek için aşağıdaki yolu kullanıyorum. Ancak, Kişisel Bağlantı Noktası için ağ özelliklerinin alınmasının yolunu bulamaz.

+ (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; 
} 

cevap

9
adresi atanır

, sadece ekleyin:

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