利用GeoLite2-City.mmdb开源库将IP转换成经纬度

开源库下载地址
https://dev.maxmind.com/geoip/geoip2/geolite2/
GeoLite2数据库是免费的IP地理定位数据库,但是不太准确,通过IP转换成的经纬度与真实地址相比较还有有一定偏差,大家看看官网,根据自己需求选择。
本人小Demo需求要做一个热力图,数据只有IP,需要一个工具类将IP转成经纬度

maven项目里面,我临时将放在了src/main/resources(库文件还是比较大的,根据需求选择存放位置,这只是一个Demo)
工具类如下:

public final class IpConvertUtil {private static org.apache.log4j.Logger log = org.apache.log4j.LogManager.getLogger(IpConvertUtil.class);//public static final String url = "/home/admin/GeoLite2-City.mmdb";public static CityResponse coordinateTransformation(String ip) {DatabaseReader reader = null;CityResponse response = null;try {// 创建 GeoLite2 数据库(如果路径中包含中文,路径名会被转码)String url = IpConvertUtil.class.getClassLoader().getResource("GeoLite2-City.mmdb").getPath();//解码String decodeStr = URLDecoder.decode(url, "utf-8");File database = new File(decodeStr);// 读取数据库内容   reader = new DatabaseReader.Builder(database).build();InetAddress ipAddress = InetAddress.getByName(ip);// 获取查询结果      response = reader.city(ipAddress);} catch (Exception e) {log.error("ip:" + ip + "转换经纬度失败!", e);} finally {if (reader != null) {try {reader.close();return response;} catch (IOException e) {log.error("ip:" + ip + "转换经纬度失败,关闭失败!", e);}}}return response;}}

如果自己路径名中有中文的话,一定不要忘记解码!
通过返回的CityResponse对象里面可以获取到经纬度以及其他的信息(自己可以查下)
测试类:

@Test@Rollback(value = false)public void IPConvert() {String ip = "";CityResponse response = IpConvertUtil.coordinateTransformation(ip);//经度String lng = response.getLocation().getLongitude().toString();//纬度String lat = response.getLocation().getLatitude().toString();System.out.println("lng:" + lng);System.out.println("lat:" + lat);}

结果肯定跟实际情况有一定的出入,慎重使用!
希望能帮到大家。

利用GeoLite2-City.mmdb开源库将IP转换成经纬度—java项目小Demo相关推荐

  1. raw服务器镜像文件怎么打开,利用qemu-img工具将其它格式镜像文件转换成VHD或RAW格式的方法...

    利用qemu-img工具将其它格式镜像文件转换成VHD或RAW格式的方法 发布时间:2020-08-26 14:31:49 来源:亿速云 阅读:962 作者:小新 小编给大家分享一下利用qemu-im ...

  2. 利用栈的基本操作,将一个十进制数转换成8进制数

    题目 利用栈的基本操作,将一个十进制数转换成8进制数 #include<iostream>using namespace std;#define MAXSIZE 100 typedef i ...

  3. 在windows平台下php使用imagick库把pdf转换成(合并)图片

    在windows平台下php使用imagick库把pdf转换成(合并)图片 开发背景 上传的word文档需要转换成图片,在网上找了资料,主要是先转换成pdf: 1. 在windows下用com组件加上 ...

  4. 利用人工智能(Magpie开源库)给一段中文的文本内容进行分类打标签

    当下人工智能是真心的火热呀,各种原来传统的业务也都在尝试用人工智能技术来处理,以此来节省人工成本,提高生产效率.既然有这么火的利器,那么我们就先来简单认识下什么是人工智能吧,人工智能是指利用语音识别. ...

  5. 关于Android开源库分享平台,(GitClub)微信小程序的开发体验

    七八月份的深圳一直在下雨,总有人说雨天适合窝在家看书,对于程序开发者来说更是难得的学习机会.我们502工作室的小伙伴利用这个时间学习了一下微信小程序开发,并上线了一个GitClub小程序,目前功能有些 ...

  6. 利用python将长视频、长语音转换成文字教程 ,非常好用

    原本自己想弄一个语音转文本的,但是发现很多博客都说的不是自己想要的,原因有以下几点:1.因为百度接口支持的语音是pcm格式,而自己的是.mp3格式的文件. 2.百度只支持60s内的文件格式,而自己想要 ...

  7. python PIL库将图片转换成字符画

    将图片转换成文本文件查看形式 准备 源码 原始图像 生成文本文件后显示的结果 注意事项 准备 语言:python 环境:PIL库,准备好图片素材 源码 from PIL import Image as ...

  8. 利用php gd or Imagick库把图片裁剪成圆形

    主要这两种方法,记录一下: 一.设置透明度 function test($url,$path='./'){ $w = 110; $h=110; // original size $original_p ...

  9. java 数学公式解析框架有哪些_开源工具 | 推荐几个Gitee火热Java项目

    openEA开源周刊 openEA开源社区的官方运营载体 这里每天给大家呈现有价值的开源资讯,欢迎您的来稿与推荐,点击上方蓝色字,加入我们吧! 摘要:OkHttps 是近期开源的对 OkHttp3 轻 ...

  10. php使用gd库将文字转换成图片

    GD库是干什么用的呢!它是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. <?php header("Content-type: ...

最新文章

  1. 使用CV2和Keras OCR从图像中删除文本
  2. 【DIY】木质音乐盒,聆听一下治愈之音。How To Make Music box out of nothing at all
  3. boost::mp11::mp_min相关用法的测试程序
  4. java语言不用担心内存吗_不用担心智能手机的电池,只需使用它
  5. 【PKUWC2018】随机算法【状压dp】【组合计数】
  6. 半正定问题与二阶凸锥问题(SDPSOCP)
  7. SOTA太难了?试试Dropout
  8. 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题
  9. 报文交换(串行)和分组交换(并行)
  10. 网管学习日记-VRRP单组备份
  11. C# internal和public
  12. 【软件测试】测试用例详解
  13. java简单小项目_java入门简单小项目有哪些?适合java初学者项目
  14. 计算机二级考试办公软件高级应用题型,计算机二级考试题型
  15. LAMP架构简介与配置
  16. StretchDIBits绘制原始YUV异常
  17. python为什么被称为胶水语言_为什么只有python成了胶水语言?
  18. visual stdio 2010与sqlserver 2008下载和安装
  19. 宫崎骏电影-Music
  20. 几个在线的维恩图制作站点

热门文章

  1. PIP卸载升级与安装不成功
  2. 软考中级哪一门比较好过?我建议你考这个。
  3. 这些信用卡取现可以免除手续费!
  4. R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现
  5. HTMLpre代码美化
  6. win10硬盘锁怎么解除_Win10磁盘被写保护怎么解除?
  7. android rat工具,Android远程控制工具——AndroRat
  8. NWDS部署安装XPI Inspector
  9. 公园智慧路灯解决方案
  10. HTML网页设计:二、网页的基本标签