最近有一个需求 ,需要获取用户的IP地址,在网上找了好多方法 ,找了一个比较简单的, 分享出来.
首先 要先加这几个库
#import<ifaddrs.h>
#import<sys/socket.h>
#import<arpa/inet.h>
获取用户地址 代码如下
NSString *address = @"an error occurred when obtaining ip address";
struct ifaddrs *interfaces = NULL;
struct ifaddrs *temp_addr = NULL;
int success = 0;
success = getifaddrs(&interfaces);
if (success == 0) { // 0表示获取成功
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;
}
}
freeifaddrs(interfaces);
SLog(@"用户的IP地址=========================%@",address);
使用的时候只需要复制粘贴 把代码粘过去即可