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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容