Apache2 + GeoIP на Debian

Установка:

apt-get update
apt-get install libapache2-mod-geoip

Включить модуль:

a2enmod geoip

Код для .htaccess:

<IfModule mod_geoip.c>
RewriteEngine on
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE RU GoodCountry
SetEnvIf GEOIP_COUNTRY_CODE BY GoodCountry
SetEnvIf GEOIP_COUNTRY_CODE KZ GoodCountry
SetEnvIf GEOIP_COUNTRY_CODE UA GoodCountry
SetEnvIf REMOTE_ADDR 192.168. GoodCountry

Order Allow,Deny
Allow from env=GoodCountry
</IfModule>

пример разрешения всех IP адресов страны по коду:

SetEnvIf GEOIP_COUNTRY_CODE RU GoodCountry 

Но для адресов локальных сетей не создаются переменные GEOIP_CONTINENT_CODE, GEOIP_COUNTRY_CODE, GEOIP_COUNTRY_NAME, поэтому если нужно - зададим правило через REMOTE_ADDR:

SetEnvIf REMOTE_ADDR 192.168. GoodCountry

Далее разрешаем доступ через проверку переменной GoodCountry

Allow from env=GoodCountry

Также можно получить доступ к переменным окружения сервера из PHP

$_SERVER['GEOIP_CONTINENT_CODE']
$_SERVER['GEOIP_COUNTRY_CODE']
$_SERVER['GEOIP_COUNTRY_NAME']
$_SERVER['GoodCountry']