//获取公网IP非局域网IP
直接访问此网址 NSString *url = @"http://ip.taobao.com/service/getIpInfo.php?ip=myip";
网址返回的JSON数据段{"code":0,
"data":{
"country":"中国",
"country_id":"CN",
"area":"华东",
"area_id":"300000",
"region":"上海市",
"region_id":"310000",
"city":"上海市",
"city_id":"310100",
"county":"浦东",
"county_id":"334115",
"isp":"电信",
"isp_id":"100227",
"ip":"126.231.115.34"
}
}- (void)urlRequestOperation{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
NSString *URLTmp1 = @"http://1212.ip138.com/ic.asp";
NSString *URLTmp = [URLTmp1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData * resData = [NSData dataWithContentsOfURL:[NSURL URLWithString:URLTmp]];
dispatch_async(dispatch_get_main_queue(), ^{
if (resData) {
//系统自带JSON解析
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
//您的IP是:[122.222.122.22] 来自:上海市某某区 某某运营商
NSString *str3 = [[NSString alloc] initWithData:resData encoding:gbkEncoding];
}
});
});
}
//获取局域网IP地址
- (NSString *)getIpAddresses{
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;
}