Java根据IP返回 省市,
由于刚好我的web有这两个jar,所以就直接用到了commons-net.jar和org.json.jar
public static void main(String[] args) {String ip = "110.83.46.180";String Zone = GetZone("http://apis.juhe.cn/ip/ip2addr?ip="+ip+"&dtype=&key=54d7b1689c44658a9b83a09250024450");System.out.println("结果IP:"+Zone);}private static String GetZone(String ipUrl){//返回结果String result = "获取失败!";//每行String line = "";//读取JSON结果String json = "";try {URL url = new URL(ipUrl);HttpURLConnection httpUrl = (HttpURLConnection)url.openConnection();httpUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");httpUrl.setDoOutput(true);BufferedReader in = new BufferedReader(new InputStreamReader(httpUrl.getInputStream(),"UTF-8"));while((line=in.readLine())!=null){json+=line;}in.close();JSONObject obj = new JSONObject(json);result = obj.getJSONObject("result").getString("area")+"-"+obj.getJSONObject("result").getString("location");} catch (Exception e) {e.printStackTrace();}return result;}
返回结果例图
用了一上午,发现上面哪个接口TM尽然有限制;然后换下面接口
public static String getZone(String ip){String result = "获取失败!";try {URL url = new URL("http://ip.ws.126.net/ipquery?ip="+ip);HttpURLConnection httpUrl = (HttpURLConnection)url.openConnection();httpUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");ScriptEngine js=new ScriptEngineManager().getEngineByName("javascript");InputStreamReader in = new InputStreamReader(httpUrl.getInputStream(),"GBK");js.eval(in);result =js.get("lo")+"-"+js.get("lc");in.close();} catch (Exception e) {e.printStackTrace();}return result;
}
2020-年
我已经换成ip2region.db了,这个比纯真IP库要准确一些,速度比接口速度快3倍左右
public static void main(String[] args) {String ip = "222.85.148.46";long ip2regionStart = System.currentTimeMillis();String cityOne = AddressUtil.getCityInfo(ip);System.out.println("ip2region use time:"+(System.currentTimeMillis() - ip2regionStart) + "ms" +" City:"+cityOne);long ipws126netStart = System.currentTimeMillis();String cityTwo = getZone(ip);System.out.println("ipws126net use time:"+(System.currentTimeMillis() - ipws126netStart) + "ms" +" City:"+cityTwo);}``
运行结果:
ip2region use time:442ms City:中国|西南|贵州省|贵阳市|电信
ipws126net use time:1403ms City:贵州省-贵阳市
后面发现更好的方法会及时更新
Java根据IP返回 省市,相关推荐
- apache代理时java获取IP的问题
2019独角兽企业重金招聘Python工程师标准>>> x-forwarded-for的深度挖掘 如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的 ...
- Java TCP/IP Socket 编程 笔记
http://jimmee.iteye.com/blog/617110 http://jimmee.iteye.com/category/93740 Java TCP/IP Socket 编程 笔记( ...
- java根据ip地址获取城市地域信息
java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?ip=123.139.9 ...
- java获取IP地址和MAC地址方式
java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现.最简单的方式,确实能获取该浏 ...
- java通过IP解析地理位置
java通过IP解析地理位置 文章目录 java通过IP解析地理位置 一.获取IP地址 二.百度普通IP定位API获取地理位置 在项目开发中,需要在登录日志或者操作日志中记录客户端ip所在的地理位置. ...
- java 操作IP工具类(子网、地址等)
分享一个操作IP工具类,包含:格式校验,二进制IP互相转换,网段转换,获取网段内IP,校验IP冲突等等 package com.algoblu.pts.boss.basic.utils.ipOpera ...
- java根据IP获取当前区域天气信息
java根据IP获取当前区域天气信息 大致思路是客户端发起请求,我们首先根据请求获取到外网IP,然后再根据外网IP获取到用户所在城市,最后根据城市获取到天气信息 获取外网IP 万网获取外网IP地址: ...
- JAVA通过ip获取所在地址与经纬度
ip,经纬度,taobao和百度api获取地址的方法 import java.io.BufferedReader; import java.io.DataOutputStream; import ja ...
- java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例
最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...
最新文章
- 函数防抖Debounce和函数节流Throttle
- 工作流集成第三方jsp表单
- 【Java基础】递归输出目录下所有文件路径
- 一文带你领略JS中原型链的精妙设计!
- 很好的开源项目ranet-uilibrary-olap
- SAP C4C business object的UUID和可读性更好的ID
- win10万能触摸屏驱动_教你win10系统设置usb鼠标驱动的方法
- [异常解决] ubuntu上安采用sudo启动的firefox,ibus输入法失效问题解决
- Android开发笔记(三十二)文件基础操作
- 版权 Copyright 和 Phpstorm
- Python——Django-settings.py的内容
- node中exports和module.exports的关系及使用
- AndroidStdio换源
- ffplay播放器原理剖析
- 如何写使用说明书或使用手册
- BLE(一) GAP、GATT
- 本地调试微信授权跳转
- elementUI级联选择器(Cascader)回显问题和clearCheckedNodes无效的解决方法
- centos查oracle版本命令,Linux操作系统查看系统信息命令
- sqlserver:发送电子邮件(使用网易邮箱服务)