使用geoipupdate自动更新GeoIP数据库

news2024/9/20 18:54:33

一、  什么是 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)填写为个人邮箱,邮箱将为成为登陆账户;

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

点击继续(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#directly-downloading-databases

1. 安装 GeoIP 更新程序

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

通过rpm在RedHat或CentOS上安装

https://github.com/maxmind/geoipupdate#installing-on-redhat-or-centos-via-the-rpm

下载适合您的系统的.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的安装和更新 – 悟禅小书童

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1929048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive的基本操作(查询)

1、基础查询 基本语法 select 字段列表|表达式|子查询 from 表(子查询|视图|临时表|普通表) where [not] 条件A and|or 条件B --先:面向原始行进行筛选 group by 字段A[,字段B,...] > 分组【去重处理】 having 聚合条件(非原始字段条件) --再&#x…

超市管理系统 需求分析与设计 UML 方向

一、项目介绍 1.1项目背景 随着经济一体化和电子商务的迅速发展,网络传播信息的速度打破了传统信息传递的模式,互联网的高速发展和计算机应用在各个高校进展迅速,更多信息化产品的突飞猛进,让现代的管理模式也发生了巨大的变化&…

Catena-x标准解读:CX-0005 Item Relationship Service API 2.1.1 项目关系服务

1 介绍 如今,大量数据存储在一个行业供应链的不同参与者之间。通过将数据与其相关上下文连接起来,可以极大地提高数据的价值。 为了实现跨企业链接数据,应用了方面模型、标准化协议和连接数据的标准化方法等标准。Catena-X为访问跨企业链接…

Python学习:实现Python项目并学习如何进行(附70个项目源码)

实现Python项目并学习如何进行,是一个循序渐进的过程,涵盖了多个方面,包括基础知识的学习、技能的提升、项目的规划和实施等。以下是一个基本的指南,帮助你开始学习并实现Python项目: 1. 学习Python基础知识 语法与基…

Linux介绍以及常用命令

目录 1. 什么是Linux 2. Linux的种类 3. CentOS7 超详细的CentOS7.4下载与图文安装 4. 常用的网络适配器种类 5. 安装ssh客户端软件 6. CentOS7的目录结构 7. Linux常用命令详解 1.目录切换命令 -- cd 2. 查看目录下的内容 -- ls 3. 查看当前所在的目录 -- pwd 4. 创…

如何在gitee上创建远程仓库?

登录gitee网站后 填写自己的仓库信息后点击创建 然后来到一个新的界面可以看到自己的仓库地址 这样一个空白的仓库就建立好了 也可以按需选择初始化仓库

结合类型信息(1)——特征丰富的知识库补全网络

1 引言 1.1 问题 首先,隐式对应关系的问题。在联合嵌入模型中,知识库和文本数据之间的关系并不是直接给出的,而是需要通过实体在文本中的共现来推断。这意味着模型必须从上下文中学习实体之间的潜在关联,而不是基于显式的标签或…

利用css设计一套漩涡式网格(grid)布局

在Web开发中,CSS Grid布局系统为我们提供了前所未有的灵活性和控制力,使得创建复杂的二维布局变得轻而易举。今天,我们将探讨一种特殊的Grid布局——漩涡式布局,并通过一个具体的HTML和CSS示例来深入了解其实现方式。 漩涡式Grid布局概述 漩涡式Grid布局是一种视觉上呈现出…

【Linux】Ubuntu 漏洞扫描与修复的吃瘪经历

自从上次“劫持”事情后,项目经理将所有跟安全相关的都推给我了(不算 KPI 又要被白嫖,烦死了)。这次客户又提了一个服务器安全扫描和漏洞修复的“活”,我这边顺手将过程记录一下,就当经验总结跟各位分享一下…

一群追星星的人,对 AI 的盼与怕

面对 AI,有人害怕,有人期盼。 “AI 和画画的、开网约车的、写东西的人有仇吗?”近来成了很多从业者的心声。大模型技术驱动了 AI 的能力进化过临界点,我们普通人根本就跟不上,或快或慢被淘汰。看起来,AI 正…

[ACM独立出版] 2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024,8月2日-4)

2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024)将于2024年8月2-4日在中国厦门召开。 VRISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供…

SpringBoot中动态注册Bean的方式

测试环境,本文源码 Java:8SpringBoot:2.5.14示例场景:动态注册ProxyServlet,间接实现类似于Nginx的反向代理功能 先理解如何实现动态注册 Bean 。 由于在 SpringBoot 中,先进行 Bean 的定义,…

【前端4】表单 编辑模式、只读模式:HTML的`readonly`、el-input的v-if=“isEdit“

【前端】表单 编辑模式、只读模式 写在最前面一、什么是编辑模式与只读模式&#xff1f;应用场景编辑模式只读模式 二、编辑模式的实现例子只读模式的实现动态切换模式使用HTML的readonly属性使用Vue.js的v-if指令 三、前后端交互 <template>代码块两个字段独立是否直接与…

Auto CAD 2020下载安装教程怎么安装如何使用

Auto CAD 2020下载安装教程 下载链接&#xff1a;https://pan.baidu.com/s/16WR6WdkWqn8WnShZHu8S5Q?pwdhdh7 提取码&#xff1a;hdh7 解压后看到这些文件 进入第一个文件夹后看到安装包&#xff0c;如果缺少了第二个文件&#xff0c;先关闭杀毒软件后重新解压即可 进入…

超全整理,数据管理CDMP认证介绍

CDMP认证概述 CDMP&#xff08;Certified Data Management Professional&#xff09;认证&#xff0c;全称数据管理专业人士认证&#xff0c;是由国际数据管理协会&#xff08;DAMA International&#xff09;推出的权威认证。该认证旨在全面评估个人在数据管理和治理领域的专…

PyMongo Sort 操作:提升你的数据查询效率

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

最新PHP自助商城源码,彩虹商城源码

演示效果图 后台效果图 运行环境&#xff1a; Nginx 1.22.1 Mysql5.7 PHP7.4 直接访问域名即可安装 彩虹自助下单系统二次开发 拥有供货商系统 多余模板删除 保留一套商城,两套发卡 源码无后门隐患 已知存在的BUG修复 彩虹商城源码&#xff1a;下载 密码:chsc 免责声明&…

[MySQL][表的增删查改][二][Retrieve][SELECT][WHERE]详细讲解

目录 1.Retrieve1.基本语法2.SELECT列1.全列查询2.查询字段为表达式3.为查询结果指定别名4.结果去重 3.WHERE条件1.比较运算符2.逻辑运算符3.示例 4.结果排序1.基本语法2.示例 5.筛选分页结果 1.Retrieve 1.基本语法 SELECT [DISTINCT] * | {column [, column] ...} [FROM ta…

一个快速可视化Psrfits(search mode)的工具

【ONE】快速可视化Psrfits&#xff08;search mode&#xff09;的工具 此工具可以快速检测和处理数据中的问题或异常&#xff0c;在不损失采样率的情况下帮助查看脉冲的动态谱、脉冲结构。 网址:https://github.com/PersusX/PDDT 基于 pyqtgraph 的交互式查看数据的工具。 P…

Java SE—基本数据类型(详细讲解)

&#x1f4dd;个人主页&#x1f339;&#xff1a;誓则盟约 ⏩收录专栏⏪&#xff1a;Java SE &#x1f921;往期回顾&#x1f921;&#xff1a;Python 神器&#xff1a;wxauto 库——解锁微信自动化的无限可能 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f3…