iOS开发 - 获取网关IP,运营商,位置,可判断是在国内还是国外
2017-12-21 10:40
1636 查看
你也许会有一个需求,需要判断当前网络的IP地址是在国内还是国外,也许你需要判断连接的Wi-Fi运营商是哪家的,虽然网上也有方法,但是却写得很简单,没有进行深入的说明,所以今天博主重新整理,给大家一个方法来处理:
首先获取IP:
通过以上信息,可以实现判断运营商(当然也有其他方法啦),判断是国内还是国外(这个貌似少有方法可以判断,我说的是实时的哦),位置信息(这个无关痛痒了,LBS也可以啦,或者基于其他第三方的也行的)。
注意一点,这里的请求是同步的哦,但是速度很快,你也可以改造成异步,GET,POST都可以,放入链接到你对应的请求中就可以啦,当作简单的url来处理即可。
遇到一个问题就是,放入博主自定义的异步请求中,然后和dispatch_group的enter_group,leave_group一起用的时候不知道为什么卡住主线程了,要几十秒到一分多钟才能结束,很奇怪哦,但是上面这个同步方法一秒都不需要,博主索性直接同步来了,目前稳定,没试过放入AF的请求中,大家可以自己试试看,也许有惊喜。
就说这么多,大家一起学习吧。
首先获取IP:
-(NSString *)getWANIP { //通过淘宝的服务来定位WAN的IP,否则获取路由IP没什么用 NSURL *ipURL = [NSURL URLWithString:@"http://ip.taobao.com/service/getIpInfo.php?ip=myip"]; NSData *data = [NSData dataWithContentsOfURL:ipURL]; NSDictionary *ipDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; NSString *ipStr = nil; if (ipDic && [ipDic[@"code"] integerValue] == 0) { //获取成功 ipStr = ipDic[@"data"][@"country"]; } return (ipStr ? ipStr : @""); } //获取到的信息给大家放这里: { code = 0; data = { area = "华东"; "area_id" = 300000; city = "杭州市"; "city_id" = 330100; country = "中国"; "country_id" = CN; county = ""; "county_id" = "-1"; ip = "xxxxxxxxx"; isp = "电信"; "isp_id" = xxxxxxx; region = "浙江省"; "region_id" = xxxxxx; }; }
通过以上信息,可以实现判断运营商(当然也有其他方法啦),判断是国内还是国外(这个貌似少有方法可以判断,我说的是实时的哦),位置信息(这个无关痛痒了,LBS也可以啦,或者基于其他第三方的也行的)。
注意一点,这里的请求是同步的哦,但是速度很快,你也可以改造成异步,GET,POST都可以,放入链接到你对应的请求中就可以啦,当作简单的url来处理即可。
遇到一个问题就是,放入博主自定义的异步请求中,然后和dispatch_group的enter_group,leave_group一起用的时候不知道为什么卡住主线程了,要几十秒到一分多钟才能结束,很奇怪哦,但是上面这个同步方法一秒都不需要,博主索性直接同步来了,目前稳定,没试过放入AF的请求中,大家可以自己试试看,也许有惊喜。
就说这么多,大家一起学习吧。
相关文章推荐
- iOS开发 - 如何获取设备的总容量和可用容量 网络运营商 3g/wifi判断 手机型号
- iOS开发 - touchBegan事件判断点击的位置在View上还是在View的子View上
- iOS开发 - 如何获取设备的总容量和可用容量 网络运营商 3g/wifi判断 手机型号
- IOS开发——获取局域网IP
- IOS开发——获取局域网IP
- iOS开发怎么判断当前页面是push方式进入还是present方式进入
- iOS开发-NSString小拓展-判断是否纯中文-获取字符所占字节
- ios开发 CLLocationManager获取位置信息时遇到的一个小问题
- iOS开发怎么判断当前页面是push方式进入还是present方式进入
- iOS开发——定位获取经纬度坐标,并反编码获得地理位置信息(具体地址,国家、省、市等)
- iOS开发 获取控件在屏幕上的位置(坐标系转换)
- iOS开发之如何获取视图在屏幕中显示的位置
- iOS开发-获取设备IP
- IOS开发——获取局域网IP
- .NET记录-获取外网IP以及判断该IP是属于网通还是电信
- iOS开发笔记(使用Google Map Service获取用户当前位置信息)
- Objective-C ,ios,iphone开发基础:ios判断图片为png还是jpg或者jepg
- ios判断系统是24小时制还是12小时制/获取系统时间
- iOS开发----地图与导航--定位和位置信息获取