最近有一個需求 ,需要獲取用戶的IP地址,在網(wǎng)上找了好多方法 ,找了一個比較簡單的, 分享出來.
首先 要先加這幾個庫
#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);
使用的時候只需要復(fù)制粘貼 把代碼粘過去即可