当前位置:网站首页 > 技术博客 > 正文

geoip是什么



最近接触到GeoIP ,网上查了查资料,这里记录一下,仅供学习参考

       GeoIP库可以根据IP地址(支持IPv4 和 IPv6), 定位该IP所在的 洲、经纬度、国家、省市、ASN 等信息。

       GeoIP目前已经升级到GeoIP2,GeoIP2有两个版本,一个免费版(GeoLite2),一个收费版本(GeoIP2, 200$起步)。

       收费版本的准确率稍高一些,更新频率为每周二更新一次, 免费版是每月第一个周二更新一次。

       两者对比可以参考官网说明 GeoIP2 City Accuracy | MaxMind

       对于大部分项目来说免费版已经足够使用了.

       除了GeoIP外, 其实还有 ip2location、Quova等也提供类似的功能, 但都是收费的.

  因为其可以根据IP地址判断所属国家的特性,被广泛应用于各大代理软件例如Surge/Shadowrocket/Quantumult(X)/Clash中,根据设置的规则使用不同的节点服务器。
  例如在Quantumult(X)中,设置以下规则:


这段规则的意思是,如果访问的IP在GeoIP数据库中的地理位置为美国(US),则使用USProxy这个策略内的服务器节点进行访问;类似的,如果是中国(CN),则使用Direct策略也就是直接连接访问。
  虽然GeoIP数据库每周更新,但其中包含的youtube、google、twitter等经常访问网站IP的地理位置(指美国)并不会随之改变,所以并不需要经常更新。

  此前,MaxMind一直提供GeoLite2公开的访问下载地址,但从2019年12月30日开始,MaxMind不再提供GeoLite2公开的访问下载地址,需要用户注册一个MaxMind帐户并获取许可密钥,才能下载GeoLite2数据库。
  MaxMind帐户注册地址:GeoLite2 Sign Up | MaxMind
直连访问,不要使用代理服务器,否则显示错误,无法注册

除了自己注册下载以外,还可以使用网络上公开的Geolite2数据库

Releases · Dreamacro/maxmind-geoip · GitHub

https://geolite.clash.dev

https://static.clash.to/GeoIP2/GeoIP2-Country.tar.gz

很多linux版本支持这个库, 可以使用yum 或 apt 进行下载, windows上使用的话就需要自己编译了.

Geolocate an IP address using Web Services with the client-side JavaScript | MaxMind Developer Portal

GeoIP2提供了多种语言的API接口供选择.

这里我需要使用C语言接口, 所以下载C语言版的源码.

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

https://dev.maxmind.com/geoip/geoip2/geolite2/

可以看到官网提供三种库,2种格式, 首先 官网API是需要使用二进制库文件, CSV格式的库可以导入其他程序 或 供你简单浏览。

三种库的区别可以从名字上就可以看出来:

  City       精确到城市(大小70M左右),

  Country 精确到国家(4M左右),

  ASN       用于产看IP地址的拥有者(7M左右). 需要注意的是 City 和 Country 库中不含ASN信息

对于ASN的理解可以通过知乎了解一下 https://www.zhihu.com/question/

根据业务需求选择. 这里我们下载精确到城市的数据库文件.

https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz

由于数据库经常更新, 官网还提供了更新的方案:

GeoIP2 Release Notes | MaxMind Developer Portal

libmaxminddb - a library for working with MaxMind DB files

 

 
 

参考

GeoIP是什么?GeoIP 简介 - 无枫不起浪

GeoIP的使用-C语言版 - LubinLew - 博客园

GeoIP安装使用 - 歪麦博客

版权声明


相关文章:

  • 王码五笔输入法86版的字根全面吗?2025-03-25 07:01:04
  • 在线文字对比工具2025-03-25 07:01:04
  • redis安装命令2025-03-25 07:01:04
  • application.loadleveladditive2025-03-25 07:01:04
  • 服务器配置远程连接2025-03-25 07:01:04
  • 跳表结构的实现2025-03-25 07:01:04
  • 二叉排序树原理2025-03-25 07:01:04
  • 王码五笔输入法app2025-03-25 07:01:04
  • visualc2010安装教程2025-03-25 07:01:04
  • ps3 e3改hen2025-03-25 07:01:04