Posts Tagged ‘GeoIP’
为AWStats增加GeoIP模块,QQ纯真IP地址库和其他功能
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数据库