GeoIP.dat.gz和GeoLiteCity.dat.gz不再可用? 尝试加载时得到404错误。

14
5个回答

17
您可以使用这个脚本将MaxMind GeoLite2数据库转换为旧版遗留格式:
示例: ./geolite2legacy.py -i GeoLite2-Country-CSV.zip -f geoname2fips.csv -o GeoIP.dat 顺便提一下 - 您可以在这里找到有关旧版格式的新数据(这些文件是使用该脚本构建的)。

12

5

12
CDN中的数据库已经有一段时间没有更新了。为避免混淆,您应该删除这个答案。 - Michael C.
@sean-booker,我已经下载了那个.gz文件,但它已经损坏了,你有其他的建议吗?谢谢! - Bercove
JFYI。发现这个网站(https://www.miyuru.lk/geoiplegacy)托管了更新的dat文件。 - Ajay Singh

1

0

我使用 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 中获取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接