chaihongjun.me

geoip数据库更新脚本

geoip数据库更新脚本

所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。

这个是从网络上摘抄来的定义,实际可以理解成一个IP和地理位置对应的数据表。GeoIp的数据库有收费和免费版本,他们都有在做更新维护,为了使我们使用的数据更加精确,我们也应该定期的去升级我们使用的二进制的数据库文件:

#!/bin/bash
#判断是否存在存放GeoIP数据库的目录,没有则创建(实际目录路径请酌情处理)
if [ ! -d /usr/local/share/GeoIP ];then
    mkdir /usr/local/share/GeoIP
fi
#从官网下载免费的国际和城市数据库文件
wget -t 5 -O /tmp/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -t 5 -O /tmp/GeoLiteCity.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
#解压压缩的数据库文件
gzip -df /tmp/GeoIP.dat.gz
gzip -df /tmp/GeoLiteCity.dat.gz
#移动数据库文件到存放的目的目录
mv -f /tmp/Geo*.dat /usr/local/share/GeoIP/

将以上的文件编写为一个脚本(比如:update_geoip.sh),别忘记加可执行权限(chmod +x update_geoip.sh)。

然后设定为每周更新一次:

### update Geoip databases
0 0 * * 0 /root/update_geoip.sh


知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。作者:chaihongjun»