GeoLite2的Java实现,Jar包部署可用
通过输入一个IP地址,解析并获取信息,比如国家、国家代码、省份、省份代码、城市、邮政编码、经纬度等等信息
例如,解析ip(128.101.101.101)的信息如下:
使用在线第三方提供的api:
- ip-api.com
- ip.taotao.com
- 百度地图api
- 新浪 iplookup
使用离线查询方式:
- 纯真库
- GeoLite2
- 埃文科技
数据丰富度对比:
查询准确率比较:
查询速度比较:
总结: 需要速度用离线,需要准确率用在线,需要数据丰富性GeoLite2、埃文科技,需要免费用GeoLite2(埃文科技虽说国内头头,奈何收费)
https://dev.maxmind.com/geoip/geoip2/geolite2/
下载City的mmdb数据文件,较于其他两者信息更丰富。
这三种离线数据包都是免费的,相对应的也有收费版本 Geo-IP2,提供更准确更详细的信息,如果需要解析获取IPS则需要用到收费版本,如下,提供了7种不同的离线数据文件:
**提供了多种语言使用,**https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs
添加maven依赖
<!-- GeoLite2依赖 -->
<dependency>
<groupId>com.maxmind.geoip2</groupId>
<artifactId>geoip2</artifactId>
<version>2.12.0</version>
</dependency>
具体请查看代码,已加上充分注释!