简介
GeoIP是IP地理位置数据库,可以根据IP地址(支持 IPv4 和 IPv6), 定位该 IP 所在的地理位置和 ASN 等信息。
GeoIP目前已经升级到 GeoIP2,GeoIP2 有两个版本,一个免费版(GeoLite2),一个收费版本(GeoIP2, 200$起步)。与付费版相比,最大的差别就是免费版的精确度相对较低,但是对于大部分项目来说,其实免费版已经足够了。
GeoIP库被广泛使用,比如 Clash
、 Shadowrocket
、Nginx
、LogStash
等。
注册
自 2019 年 12 月 30 日起,MaxMind 要求用户必须 注册帐户 并获取许可密钥以下载 GeoLite2 数据库,需要注意注册的时候不要开启 VPN,实测开启 VPN 注册会失败。
注册后需要生成一个整数,并记录自己的 AccountID 和 LicenseKey,如下图所示:
使用
-
安装GeoIP
yum install geoip geoip-devel
-
安装更新程序 geoipupdate
# 下载更新程序 wget https://github.com/maxmind/geoipupdate/releases/download/v4.2.2/geoipupdate_4.2.2_linux_amd64.tar.gz # 解压 tar xf geoipupdate_4.2.2_linux_amd64.tar.gz && cd geoipupdate_4.2.2_linux_amd64/ # 将更新文件添加到 /usr/bin mv geoipupdate /usr/bin/
-
编辑配置文件并更新数据库
# 编辑配置文件 vim /usr/local/etc/GeoIP.conf # 修改 AccountID 和 LicenseKey 为上面记录的值 AccountID [your account id] LicenseKey [your license key] # 修改需要下载的ip库,下述只是示例,根据自己需要配置 EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country # 修改ip库的保存路径 DatabaseDirectory [your/path/to/save/geoip/data] # 更新数据,数据文件后缀为 mmdb,比如 GeoLite2-City.mmdb 和 GeoLite2-Country.mmdb geoipupdate
-
创建定时任务自动更新
# 编辑定时任务 crontab -e # 增加配置,需要自行修改更新时间以及日志路径 0 * * * 6 /usr/local/bin/geoipupdate > /var/log/geoipupdate.log 2>&1