iOS 得到当前设备的IP地址

来源:互联网 发布:淘宝产品参数 编辑:程序博客网 时间:2024/05/21 10:20

首先要引入头文件

#import <ifaddrs.h>#import <arpa/inet.h>

下面是实现代码

+(NSString *) getIpAddress {   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) {      // Loop through linked list of interfaces      temp_addr = interfaces;      while(temp_addr != NULL) {         if(temp_addr->ifa_addr->sa_family == AF_INET) {            // Check if interface is en0 which is the wifi connection on the iPhone            if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {               // Get NSString from C String               address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];            }         }         temp_addr = temp_addr->ifa_next;      }   }   // Free memory   freeifaddrs(interfaces);   return address;}
原创粉丝点击