几天前开始,我无法下载
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gzhttp://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
我用来启用ngx_http_geoip_module模块的数据库。
它是免费的,一直可用,但现在。有人知道这个数据库最近的变化吗?
您可以使用以下脚本将MaxMind GeoLite2数据库转换为旧的旧格式:
示例:./geolite2legacy.py -i GeoLite2-Country-CSV.zip -f geoname2fips.csv -o GeoIP.dat
顺便说一句 - 有一个站点,您可以在其中找到有关旧格式的新数据,请点击此处:https://www.miyuru.lk/geoiplegacy(那里的文件是使用此脚本构建的)
Maxmind不再支持Geolite Legacy,只支持Geolite2:https://blog.maxmind.com/2018/01/02/discontinuation-of-the-geolite-legacy-databases/
您可以使用替代的CDN站点:
https://mirrors-cdn.liferay.com/geolite.maxmind.com/download/geoip/database/
在这里,您将找到:
https://mirrors-cdn.liferay.com/geolite.maxmind.com/download/geoip/database/GeoIP.dat.gz
我发布了一个 docker 镜像,该镜像托管了一个旧数据库,您也可以根据 geolite2legacy.py 脚本使用,每周在容器内更新一次。
https://hub.docker.com/r/peterlh/geoip-legacy
我使用 awk 来解析来自whois
的国家和网络信息。
#!/bin/bash
IP=$1
if out=$(grep $IP /tmp/mygeoip)
then
echo "$out" | awk '{$1="";print}'
exit
fi
if [[ ($IP =~ ^10.) || ($IP =~ ^192.168.) || ($IP =~ ^172.16.) ]]
then
echo "LAN"
exit 0
fi
# __^__ __^__
# ( ___ )-----------( ___ )
# | / | AWK version | |
# |___| |___|
# (_____)-----------(_____)
result=$(whois $IP | awk '/country/ {country=$2} /netname/ {netname=$2} END {print country,netname}')
echo $IP $result >> /tmp/mygeoip
echo $result
$ net.ip.geo 192.168.90.238
LAN
$ net.ip.geo 92.247.20.226
BG MTELNET
$ net.ip.geo 129.45.92.28
DZ Optimum-Telecom-Algeria
$
它在/tmp/mygeoip
中使用临时缓存,以便在缓存中查找对同一 IP 的查询,而不是从 whois
中查找。