使用geoipupdate自动更新GeoIP数据库
创始人
2024-12-26 19:09:52
0

一、  什么是 GeoIP?

通过在数据库中将地理位置和 IP 地址相互映射,软件程序便可以使用 IP 地址来确定其对应的地理位置,其中包括国家/地区、州/省、城市、邮政编码、纬度/经度、ISP、区号和其他信息。

很多软件都使用 MaxMind 的数据库对 IP 地址的地理位置进行解析,例如前面所提到的 Clash 就是通过解析出口 IP 地址的地理位置,来判断该 IP 是否需要经过代理进行访问。

二、  注册maxmind账号

GeoLite2 Sign Up | MaxMind

● 个人全名(Full name)与公司名(Company)可全部填写个人名字;

● 行业(Industry)可随意选择,我选择的是数据分析(Analytics);

● 国家(Country)我选择的是中国;

● 用途(Intended use)我选择的是网站数据分析(Web analytics);

● 邮箱(Email address)填写为个人邮箱,邮箱将为成为登陆账户;

剩余两项,电话及使用计划为非必填项所以忽略。

提示不能使用VPN,关掉VPN再试。

点击继续(Continue)后,邮箱会收到一封注册邮件,按箭头点击跳转至设置密码页面。

三、  下载 GeoLite2 数据库

Maxmind 提供了两种版本的 GeoIP 数据库,分别是收费的 GeoIP2 数据库和免费的 GeoLite2 数据库,只需要 注册账户就可以获得免费的 GeoLite2 数据库的 下载链接。

图1 MaxMind数据库文件下载页面

通常,很多软件加载的是 .mmdb 格式的 GeoIP 数据库文件,所以我们只需下载红框中的数据库文件。使用 GeoLite2-Country 数据库,IP 地址只解析到对应的国家或地区,使用 GeoLite2-City 数据库,IP 地址可以具体解析到国家/地区、州/省和城市,点击 Download GZIP 就会下载对应的最新版本 GeoLite2 数据库文件。

当然,我们也可以选择点击 Get Permalinks 来获取永久的下载链接。

图2 获取数据库文件的永久下载链接

四、  生成许可证密钥

在账户的 管理许可证密钥 页面中,我们可以生成个人的许可证密钥。许可证密钥可以用来获取数据库的永久下载链接,也可以授权 geoipupdate 程序自动更新数据库文件。

创建license key

主要进行如下 5 步操作:

1.  点击 Generate new license key 按钮。

2.  在 License key description 中给密钥命名。

3.  “Will this key be used for GeoIP Update?”(该密钥是否用于 GeoIP 更新?)选择 yes

4.  选择”Generate a license key and config file for use with geoipupdate version 3.1.1 or newer.”(生成用于 3.1.1 以上版本的 geoipupdate 的许可证密钥和配置文件)

5.  点击 Confirm 确定

图4 生成许可证密钥

图5 创建后显示的用户ID和许可证密钥

出于安全考虑,许可证密钥只会在第一次生成时完整显示一次,之后仅能查看密钥的前 4 个字符。所以在许可证密钥生成后,务必第一时间把它记录下来。

点击 Download Config 按钮,就会下载用于 geoipupdate 程序的配置文件。用文本编辑器打开可以看到如下内容:

# GeoIP.conf file for `geoipupdate` program, for versions >= 3.1.1. # Used to update GeoIP databases from https://www.maxmind.com. # For more information about this config file, visit the docs at # https://dev.maxmind.com/geoip/updating-databases?lang=en.  # `AccountID` is from your MaxMind account. AccountID 6735  # `LicenseKey` is from your MaxMind account LicenseKey O2Z1dEfCCCCC  # `EditionIDs` is from your MaxMind account. EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country 

五、  安装和配置 GeoIP 更新程序

在生成了 License key 之后,我们就可以使用永久链接来下载 GeoLite2 数据库文件了,例如下载 GeoLite2-City 数据库:

export YOUR_ACCOUNT_ID=6735 export YOUR_LICENSE_KEY=O2Z1dEfuSBsRAk curl -O -J -L -u $YOUR_ACCOUNT_ID:$YOUR_LICENSE_KEY 'https://download.maxmind.com/geoip/databases/GeoIP2-City-CSV/download?suffix=zip'  

这种方法虽然每次能下载到最新版本的 GeoLite2 数据库文件,但是每次数据库更新都依靠手动下载必然是非常麻烦的,所以我们可以使用 MaxMind 提供的官方 GeoIP 数据库更新程序 geoipupdate。

https://dev.maxmind.com/geoip/updating-databases

1. 安装 GeoIP 更新程序

GeoIP 更新程序 geoipupdate 可以在 Github 下载。

通过rpm在RedHat或CentOS上安装

https://github.com/maxmind/geoipupdate

下载适合您的系统的.rpm。

运行rpm-Uvhi path/to/geopupdate_5.0.0.0_linux_amd64.rpm(根据需要替换版本号和体系结构)。你需要root权限。这将把geopupdate安装到/usr/bin/geopupdate。

geopupdate默认情况下会查找配置文件/etc/GeoIP.conf。

安装包下载路径

https://github.com/maxmind/geoipupdate/releases

wget https://github.com/maxmind/geoipupdate/releases/download/v7.0.1/geoipupdate_7.0.1_linux_amd64.rpm  rpm -ivh geoipupdate_7.0.1_linux_amd64.rpm 

2. 配置 GeoIP 更新程序

用文本编辑器打开 /etc/GeoIP.conf,把先前生成的许可证密钥对应的配置文件内容粘贴进去,或者手动输入 AccountID、LicenseKey 和 EditionIDs。剩余部分保持默认。

# 编辑配置文件 vim /etc/GeoIP.conf      # 修改 AccountID 和 LicenseKey 为上面记录的值     AccountID [your account id]     LicenseKey [your license key]      # 修改需要下载的ip库,下述只是示例,根据自己需要配置     EditionIDs GeoLite2-City GeoLite2-Country      # 修改ip库的保存路径     DatabaseDirectory [/usr/share/GeoIP] 

3. 运行 GeoIP 更新程序

运行 geoipupdate 指令,程序便会下载最新的 GeoIP 数据库文件到 /usr/share/GeoIP 目录。

[root@yearning home]# geoipupdate [root@yearning GeoIP]# pwd /usr/share/GeoIP [root@yearning GeoIP]# ll 总用量 55740 -rw-r--r--. 1 root root 50443830 7月   3 17:01 GeoLite2-City.mmdb -rw-r--r--. 1 root root  6629084 7月   3 17:01 GeoLite2-Country.mmdb [root@yearning GeoIP]# 

六、  自动更新 GeoIP 数据库

如果要自动下载更新最新的 GeoIP 数据库文件,我们还需要添加计划任务。

首先在终端中输入以下指令编辑计划任务:

crontab -e  

在 crontab 中添加 geoipupdate 自动更新计划任务:

14 4 * * 0,4 /usr/bin/geoipupdate > /var/log/geoipupdate.log 2>&1  

添加完成后,保存并退出。其中,如果系统使用的是 nano 文本编辑器,只需依次按 Ctrl + O 和 Ctrl + X 即可,如果系统使用的 vim 文本编辑器,则需要先按 Esc ,再输入 :wq。

按照以上内容添加到计划任务,系统会在每个星期的星期天和星期四凌晨 4:14 对 GeoIP 数据库文件进行更新。

GeoIP商业版计费方式

参考资料:

使用 geoipupdate 自动更新 GeoIP 数据库 - 嘻嘻琦琦

GeoIP的安装和更新 – 悟禅小书童

相关内容

热门资讯

今年以来!91y游戏辅助透视挂... 今年以来!91y游戏辅助透视挂,福城麻将是有挂,一贯竟然有挂1、首先打开91y游戏辅助器下载最新版本...
据报道!一发棋牌辅助透视挂,喜... 据报道!一发棋牌辅助透视挂,喜乐会真的有挂,一贯发现有挂1、用户打开应用后不用登录就可以直接使用,点...
据文件显示!酷玩部落辅助透视挂... 据文件显示!酷玩部落辅助透视挂,呼包鄂游戏真的是有挂,本来有挂助手1、让任何用户在无需酷玩部落安装教...
据玩家消息!微乐刨幺辅助透视挂... 据玩家消息!微乐刨幺辅助透视挂,云南山水麻将真的是有挂,其实讲解有挂微乐刨幺破解侠是真的助透视。每个...
截至发稿!欢乐龙城3辅助透视挂... 截至发稿!欢乐龙城3辅助透视挂,铃铛游戏3D真的有挂,总是有挂助手铃铛游戏3D透视方法中分为三种模型...
相较于以往!中至鹰潭麻将辅助透... 相较于以往!中至鹰潭麻将辅助透视挂,赤峰麻将确实有挂,一直有挂分析中至鹰潭麻将脚本下载中分为三种模型...
据监测!极美辅助透视挂,大神罗... 据监测!极美辅助透视挂,大神罗山麻将存在有挂,其实有挂神器暗藏猫腻,小编详细说明极美破解器有用吗(w...
2026版总结!开心玩辅助透视... 2026版总结!开心玩辅助透视挂,九五确实有挂,好像有挂方法1、每一步都需要思考,不同水平的挑战会更...
现就发布提示!518互娱辅助透... 现就发布提示!518互娱辅助透视挂,天天石城麻将存在有挂,总是有挂详细1、进入到518互娱是否有挂之...
目前!丁二红辅助透视挂,微乐碰... 目前!丁二红辅助透视挂,微乐碰胡确实有挂,竟然有挂分析该软件可以轻松地帮助玩家将丁二红外卦神器提升到...