您的位置:首页 > 移动开发 > IOS开发

ios 获取手机ip地址

2016-05-30 00:00 537 查看
摘要: ios 获取手机ip地址

#import <ifaddrs.h>
#import <arpa/inet.h>
#include <net/if.h>

//获取IP地址
+ (NSString *)getIpAddr {
NSString *IP = @"";
BOOL success;
struct ifaddrs * addrs;
const struct ifaddrs * cursor;

success = getifaddrs(&addrs) == 0;
if (success) {
cursor = addrs;
while (cursor != NULL) {
// the second test keeps from picking up the loopback address
if (cursor->ifa_addr->sa_family == AF_INET && (cursor->ifa_flags & IFF_LOOPBACK) == 0)
{
NSString *name = [NSString stringWithUTF8String:cursor->ifa_name];
//猜的无线
if ([name isEqualToString:@"en0"] || [name isEqualToString:@"en1"] || [name isEqualToString:@"en2"]) {
IP = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];

}
//猜的卡
else if ([name isEqualToString:@"pdp_ip0"] || [name isEqualToString:@"pdp_ip1"] || [name isEqualToString:@"pdp_ip2"]) {
IP = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];

}
else if ([name isEqualToString:@"ppp0"] || [name isEqualToString:@"ppp01"] || [name isEqualToString:@"ppp02"]) {
IP = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)cursor->ifa_addr)->sin_addr)];

}
}
cursor = cursor->ifa_next;
}
freeifaddrs(addrs);
}
return IP;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: