由于刚好我的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返回 省市,相关推荐

  1. apache代理时java获取IP的问题

    2019独角兽企业重金招聘Python工程师标准>>> x-forwarded-for的深度挖掘 如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的 ...

  2. Java TCP/IP Socket 编程 笔记

    http://jimmee.iteye.com/blog/617110 http://jimmee.iteye.com/category/93740 Java TCP/IP Socket 编程 笔记( ...

  3. java根据ip地址获取城市地域信息

    java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?ip=123.139.9 ...

  4. java获取IP地址和MAC地址方式

    java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现.最简单的方式,确实能获取该浏 ...

  5. java通过IP解析地理位置

    java通过IP解析地理位置 文章目录 java通过IP解析地理位置 一.获取IP地址 二.百度普通IP定位API获取地理位置 在项目开发中,需要在登录日志或者操作日志中记录客户端ip所在的地理位置. ...

  6. java 操作IP工具类(子网、地址等)

    分享一个操作IP工具类,包含:格式校验,二进制IP互相转换,网段转换,获取网段内IP,校验IP冲突等等 package com.algoblu.pts.boss.basic.utils.ipOpera ...

  7. java根据IP获取当前区域天气信息

    java根据IP获取当前区域天气信息 大致思路是客户端发起请求,我们首先根据请求获取到外网IP,然后再根据外网IP获取到用户所在城市,最后根据城市获取到天气信息 获取外网IP 万网获取外网IP地址: ...

  8. JAVA通过ip获取所在地址与经纬度

    ip,经纬度,taobao和百度api获取地址的方法 import java.io.BufferedReader; import java.io.DataOutputStream; import ja ...

  9. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

最新文章

  1. 函数防抖Debounce和函数节流Throttle
  2. 工作流集成第三方jsp表单
  3. 【Java基础】递归输出目录下所有文件路径
  4. 一文带你领略JS中原型链的精妙设计!
  5. 很好的开源项目ranet-uilibrary-olap
  6. SAP C4C business object的UUID和可读性更好的ID
  7. win10万能触摸屏驱动_教你win10系统设置usb鼠标驱动的方法
  8. [异常解决] ubuntu上安采用sudo启动的firefox,ibus输入法失效问题解决
  9. Android开发笔记(三十二)文件基础操作
  10. 版权 Copyright 和 Phpstorm
  11. Python——Django-settings.py的内容
  12. node中exports和module.exports的关系及使用
  13. AndroidStdio换源
  14. ffplay播放器原理剖析
  15. 如何写使用说明书或使用手册
  16. BLE(一) GAP、GATT
  17. 本地调试微信授权跳转
  18. elementUI级联选择器(Cascader)回显问题和clearCheckedNodes无效的解决方法
  19. centos查oracle版本命令,Linux操作系统查看系统信息命令
  20. sqlserver:发送电子邮件(使用网易邮箱服务)

热门文章

  1. windows安装cx_oracle的坑
  2. Apriori算法——中医病症辩证关联规则分析
  3. 女人需要调教人需要调教
  4. 关于tkinter.Canvas 不显示图片的问题
  5. 文件夹成变成.exe 解决办法
  6. Mac下GOPATH配置
  7. win10安装并配置node.js
  8. RabbitMQ中的cluster、mirrored queue,以及 warrens机制、RAM node、disk node及vhost介绍
  9. 用户画像是怎么生成出来的
  10. 直接在文件夹打开cmd