Как получить ipaddress устройства iphone в универсальном приложении в ios

Мне нужно получить IP-адрес устройства iphone/ipad,

Я использовал следующий код

- (NSString *)getIPAddress
{
struct ifaddrs *interfaces = NULL;
struct ifaddrs *temp_addr = NULL;
NSString *wifiAddress = nil;
NSString *cellAddress = nil;
   // retrieve the current interfaces - returns 0 on success
if(!getifaddrs(&interfaces)) {
    // Loop through linked list of interfaces
    temp_addr = interfaces;
    while(temp_addr != NULL) {
        sa_family_t sa_type = temp_addr->ifa_addr->sa_family;
        if(sa_type == AF_INET || sa_type == AF_INET6)
        {
            name = [[NSString stringWithUTF8String:temp_addr->ifa_name] retain];
             addr = [[NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)] retain]; // pdp_ip0
            if([name isEqualToString:@"en0"])
            {
                // Interface is the wifi connection on the iPhone
                wifiAddress = addr;
                 NSLog(@"address  addr  %@",addr);
            }
            else if([name isEqualToString:@"pdp_ip0"])
            {
                // Interface is the cell connection on the iPhone
                cellAddress = addr;
                 NSLog(@"address  addr  %@",addr);
            }
        }
        temp_addr = temp_addr->ifa_next;
    }
    // Free memory
    freeifaddrs(interfaces);
}

addr = wifiAddress ? wifiAddress : cellAddress;

NSLog(@"address  addr  %@",addr);
return addr ? addr : @"0.0.0.0";
}

Он отлично работает, когда приложение не является универсальным приложением.

Когда я изменил приложение на универсальное приложение, оно возвращает нулевое значение в ответ

пожалуйста, помогите мне, спасибо заранее

0 ответов

Другие вопросы по тегам