获取本地ip方法

来源:互联网 发布:开淘宝店铺步骤 编辑:程序博客网 时间:2024/04/27 15:44

第一步:文件包含下面头文件

#import <ifaddrs.h>

#import <arpa/inet.h>



第二步:获取本地ip的方法

+ (NSString *)getIPAddress

{

NSString *address =@"error";

structifaddrs *interfaces = NULL;

structifaddrs *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([[NSStringstringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en0"])

{

// Get NSString from C String

address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];

}

elseif ([[NSStringstringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en1"]){

// Get NSString from C String

address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];

}

               else if([[NSString stringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"lo0"]){

// Get NSString from C String

address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];

}

}

temp_addr = temp_addr->ifa_next;

}

}

// Free memory

freeifaddrs(interfaces);

return address;

}


原创粉丝点击