几天前开始,我无法下载以下数据库,它们是用于启用ngx_http_geoip_module模块的:
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
这些数据库以前是免费并一直可用但现在不行了。有没有人知道最近这个数据库发生了什么变化?
几天前开始,我无法下载以下数据库,它们是用于启用ngx_http_geoip_module模块的:
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
这些数据库以前是免费并一直可用但现在不行了。有没有人知道最近这个数据库发生了什么变化?
Maxmind公司不再支持Geolite legacy数据库,只支持Geolite2: https://blog.maxmind.com/2018/01/02/discontinuation-of-the-geolite-legacy-databases/
我使用 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
中获取。