GeoLite2(GeoIP2)数据库使用
由MaxMind提供,有ASN,国家与市三种类型,支持IPv4与IPv6,使用mmdb或CSV格式分发。
注意:自2019年12月30起,需要注册账号下载。
https://dev.maxmind.com/geoip/geoip2/geolite2/
Python的使用
安装官方提供的模块:
pip3 install geoip2
示例:
import geoip2.database
gi = geoip2.database.Reader('GeoLite2-Country.mmdb')
gn = gi.country('1.1.1.1')
#city,country,asnisp
#print(gn)
print(gn.country.names['zh-CN'])
print(gn.country.iso_code)
#输出:
澳大利亚
AU
Nginx的使用
Nginx需要编译Geoip2模块(有Geoip模块,但只适用旧版的dat格式)。
https://github.com/leev/ngx_http_geoip2_module
(http)
geoip2 /etc/nginx/geoip2/GeoLite2-Country.mmdb {
#自动重载
auto_reload 5m;
$geoip2_metadata_country_build metadata build_epoch;
#国家代码
$geoip2_country_code default=US country iso_code;
#国家名称
#$geoip2_country_name country names zh-CN;
}
if($geoip2_country_code != CN) {
deny all;
}