最近需要获取ip地址的地理位置信息(国家地区,经纬度等),就发现了maxmind。
maxmind提供了免费的可在本地部署的geo-ip数据库(GeoLite2)(mmdb以及csv格式),和geo-ip查询api服务
支持ipv4和ipv6的地理信息查询,以及ASN数据库(ip-运营商信息查询)
maxmind官网:https://www.maxmind.com/en/home
虽然使用别人提供的api服务无疑是最方便的,但是考虑到网络速度和效率,我希望在本地建立geo-ip数据库服务,这样查询一个ip的地理位置信息的速度就能提升很多。
要下载本地部署的GeoLite2数据库,首先需要在maxmind注册一个账号:https://www.maxmind.com/en/geolite2/signup
注册
非常简单,除了邮箱需要认真填写之外,其它的可以随便填。
提交注册后,maxmind将会给你的邮箱发送一封邮件,需要单击邮件中的链接完成注册
单击链接后设置你的密码,注册完成。
之后登录你的账号,就可以去下载数据库了!
用户名是注册邮箱,密码是你设置的密码
数据库下载
下载地址(需要登录):https://www.maxmind.com/en/accounts/470006/geoip/downloads
maxmind提供了六种免费的数据库,有mmdb,也有csv格式。你也可以全部下载下来看看
什么是ASN数据库?
从图中可以看到有些数据库的标题后面写着“ASN”三个字母,这个ASN的指的就是ip-运营商信息的数据库。
例如,我下载了一个csv格式的ASN数据库:
可以看到有ipv6和ipv4两种,右边的就是ip的提供商(运营商)
关于mmdb
mmdb是maxmind自己的一种二进制数据库格式,它提供较快的ip查询速度。
要读取/操作mmdb,maxmind为大多数语言都提供了API和库:https://dev.maxmind.com/geoip/geoip2/downloadable/
更新/升级数据库
因为ip信息常常在变动,所以更新数据库是非常有必要的。maxmind非常贴心的提供了数据库的升级工具,使用它可以很方便的将数据库升级到最新:https://dev.maxmind.com/geoip/geoipupdate/
需要注意的是,免费的数据库更新周期为两周一次,需要付费才能得到最快的更新速度(X)多数情况下不需要付费也足够了!
好了,有了这些,在本地搭建一个ip地理位置信息数据库简直是轻而易举~