このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
最近の更新
「mod_geoip」モジュールをインストールできるようにyumレポジトリ「epel」を追加します。
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# yum -y install mod_geoip
vi /etc/cron.monthly/geoip chmod 755 /etc/cron.monthly/geoip
/etc/cron.monthly/GeoIP.sh
#! /bin/sh
TMPDIR=/tmp
GEODIR=/usr/local/share/GeoIP
DAT=GeoIP.dat
cd $TMPDIR
#/usr/bin/wget http://www.maxmind.com/download/geoip/database/$DAT.gz
/usr/bin/wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/$DAT.gz
if [ $? != 0 ] ; then
echo "wget failed"
exit 1
fi
/bin/gunzip $DAT.gz
if [ $? != 0 ] ; then
echo "gunzip failed"
exit 2
fi
cd $GEODIR
/bin/mv $DAT $DAT.`/bin/date "+%Y%m%d-%H%M%S"`
/bin/mv $TMPDIR/$DAT .
<Location /> Order allow,deny SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry SetEnvIf GEOIP_COUNTRY_CODE KR BlockCountry SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry Deny from env=BlockCountry Allow from all </Location>
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry # もし国コードが「RU」だったら、それは「BlockCountry」です。 SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry # 「BlockCountry」に設定されているものからの接続を拒否する Deny from env=BlockCountry
# リダイレクトを有効にします。 RewriteEngine On # もし国コードが「US」だったら RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$ # http://english.domain.com/ に転送する RewriteRule ^(.*)$ http://english.domain.com [L]
GeoIPのモジュールを読み込んでる状態で、「%{GEOIP_COUNTRY_CODE}e」をLogFormatに足す事で
国情報を出力する事ができます。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined ↓ ↓ LogFormat "%{GEOIP_COUNTRY_CODE}e %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
これで下記のように国コードが先頭に出力されます。
JP 210.172.143.2 - - [27/Jan/2012:18:58:51 +0900] "POST /lib/exe/ajax.php HTTP/1.1" 200 68 "http://dokuwiki.fl8.jp/doku.php"