GeoIP для Apache

Недурной модуль для apache1.х и 2.х версий — по IP посетителя определяется его страна, регион и город. Может понадобиться, чтобы зарубить левых посетителей к примеру по странам…
Скачиваем нужные файлы:

cd /tmp
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

Для Apache 1.x:

wget http://geolite.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.3.4.tar.gz
Или видите какой есть последний http://geolite.maxmind.com/download/geoip/api/mod_geoip/

Для Apache 2.x:

wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz

Или видите какой есть последний

http://geolite.maxmind.com/download/geoip/api/mod_geoip2/

Установливаю на Apache 2.x и пример дальше идет под 2.х:

Распаковываем файлы:

cd /tmp
tar xzf GeoIP.tar.gz
tar xzf mod_geoip2_1.2.5.tar.gz
gunzip GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz

Приступаем к аппарате главного пакета для GeoIP и копируем ему новые базы:

cd /tmp/GeoIP-1.4.6
./configure
make install clean
cd /tmp
cp *.dat /usr/local/share/GeoIP/

Сейчас компилируем модуль для Apache 2.x (в моем случае стоит directadmin на сервере и в нем используется файл (именованная область данных на носителе информации) apxs, у Вас сможет быть apxs2):

Читайте также:  Как преобразовать Debian 8 в стиль Ubuntu MATE

cd /tmp/mod_geoip2_1.2.5
apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c

Сейчас добавим строки в файл httpd.conf (в моем случае он находится

/etc/httpd/conf/httpd.conf):
LoadModule geoip_module /usr/lib/apache/mod_geoip.so
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat
GeoIPDBFile /usr/local/share/GeoIP/GeoLiteCity.dat
GeoIPOutput All
</IfModule>

Перезагружаем Apache…

Испытываем модуль…
Создадим страничку со следующим кодом php, к примеру страницу geoip.php:
<pre>
С какого места припёрся:

<?php
$country_code = apache_note(«GEOIP_COUNTRY_CODE»);
$region = apache_note(«GEOIP_Область»);
$country_name = apache_note(«GEOIP_COUNTRY_NAME»);
$city = apache_note(«GEOIP_CITY»);
echo «Код государства: » . $country_code . «\n»;
echo «Регион: » . $region . «\n»;
echo «Имя государства: » . $country_name . «\n»;
echo «Город: » . $city . «\n»;
?>
</pre>