Web Digest

还有众多网络文摘,仅供个人收藏和参考

Posts Tagged ‘GeoIP

为AWStats增加GeoIP模块,QQ纯真IP地址库和其他功能

with 10 comments

1. 为了支持UTF decode

perl -MCPAN -e ‘install “Encode”‘
perl -MCPAN -e ‘install “URI::Escape”‘

然后可以打开LoadPlugin=”decodeutfkeys”

2. 打开LoadPlugin="tooltips", 这个不需要添加而外的Perl 模块了

3. 去maxmind.com上下载最新的GeoIP C API, 并编译安装,虽然出于安全考虑,一般不愿意编译非Ubuntu源的第三方程序,但考虑它是开源,又广为传播,其模块甚至写道了awstats的默认配置文件了,应该不会有太大问题。此外FreeBSD也有了Port,那就随大流吧。

cd /usr/local/src
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar zxf GeoIP.tar.gz
cd GeoIP-1.4.6
./configure
make
make install

Install后,就在/usr/local/share/GeoIP下生成了GeoIP.dat
然后下载最新的3个IP库

cd /usr/local/share/GeoIP/
wget -t 5 http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -t 5 http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget -t 5 http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
gzip -d *

再安装必须的Perl模块

perl -MCPAN -e 'install "Geo::IP"'

最后修改Awstatus配置文件

LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoLiteCity.dat"
LoadPlugin="geoip_org_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoIPASNum.dat"
#百万级以上网址使用:LoadPlugin="hashfiles"

4. 加载QQIP地址库

这里要用到2个第三方的Perl脚本
http://www.ieasy.org/download/qqhostinfo.pm
http://www.ieasy.org/download/qqwry.pl

看了一下源代码,比较简单,应该没有安全问题,也可以去刘辉的blog下载这两个文件

下载完成后,将文件保存到/usr/local/awstats/wwwroot/cgi-bin/plugin下

修改qqwry.pl,把

my $ipfile=”./QQWry.Dat”;
修改为:
my $ipfile=”/usr/local/share/GeoIP/QQWry.Dat”;

然后

cd /usr/local/share/GeoIP
wget http://update.cz88.net/soft/qqwry.rar

apt-get install unrar
unrar e qqwry.rar

在把除了QQWry.dat之外的文件全部删除

在/etc/awstats/awstats.yoursite.com.conf中,添加

LoadPlugin=”qqhostinfo”

应该就可以了

6. 创建GeoIP自动更新脚本

在/usr/local/share/GeoIP下,创建GeoIP_update.sh

#!/bin/sh

wget -q -t 5 -O /usr/local/share/GeoIP/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -q -t 5 -O /usr/local/share/GeoIP/GeoLiteCity.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget -q -t 5 -O /usr/local/share/GeoIP/GeoIPASNum.dat.gz http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz

gzip -df /usr/local/share/GeoIP/GeoIP.dat.gz
gzip -df /usr/local/share/GeoIP/GeoLiteCity.dat.gz
gzip -df /usr/local/share/GeoIP/GeoIPASNum.dat.gz

然后 chmod +x GeoIP_update.sh

crontab -uwww-data -e

27 3 5 * * /usr/local/share/GeoIP/GeoIP_update.sh

在每月5日3点21分,自动更新IP数据库

Written by admin

November 10, 2009 at 1:13 pm

Posted in 网站|Site

Tagged with ,