iOS获取设备外网IP的方法

网上查了很多资料,不是获取到的是局域网内IP就是编译不过,或者通过访问获取时访问网址无法登陆

特此经过多次尝试查找IP的网址,结合网上查到获取IP的方法,将目前能用的网址写成代码

方法如下:

+(NSDictionary *)deviceWANIPAdress{

NSError *error;

NSURL *ipURL = [NSURL URLWithString:@"http://pv.sohu.com/cityjson?ie=utf-8"];

NSMutableString *ip = [NSMutableString stringWithContentsOfURL:ipURL encoding:NSUTF8StringEncoding error:&error];

//判断返回字符串是否为所需数据

if ([ip hasPrefix:@"var returnCitySN = "]) {

//对字符串进行处理,然后进行json解析

//删除字符串多余字符串

NSRange range = NSMakeRange(0, 19);

[ip deleteCharactersInRange:range];

NSString * nowIp =[ip substringToIndex:ip.length-1];

//将字符串转换成二进制进行Json解析

NSData * data = [nowIp dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

return dict;

}

return nil;

}

你可能感兴趣的:(iOS获取设备外网IP的方法)