 | GeoIP - установка и использование на Apache/Centos 7
|
GeoIP - программное обеспечения для определения расположение по IP адресу.
Данная возможность очень востребована в разработке веб сайтов, настройки систем фильтрации трафика и т.д. для создания разных алгоритмов поведения систем в зависимости от географического расположения.
В данной статье рассматривается вариант подключения MaxMind GeoIP бесплатного варианта базы данных.
- Подключение репозитория EPEL (рассмотрение данного вопросы есть в отдельной статье на сайте)
# yum install epel-release
- Установка Mod_GeoIP (модуль для Apache)
# yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel
Далее необходимо скачать посление версии баз GeoIP
# cd /usr/share/GeoIP/
# mv GeoIP.dat GeoIP.dat_org
# wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
# gunzip GeoLite2-Country.tar.gz
# gunzip GeoLite2-City.tar.gz
Подключение Mod_GeoIP к Apacheche, внесение изменения в конфигурационный файл
/etc/httpd/conf.d/geoip.conf
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache
</IfModule>
Перезапуск Apache для применения изменений
# systemctl restart httpd
Проверка работы GeoIP
создаем тестовую страницу, в нашем примере /var/www/html/geoip_test.php со следующим содержанием
<html>
<head>
<title>What is my IP address - determine or retrieve my IP address</title>
</head>
<body>
<?php
$ipaddress = getenv(REMOTE_ADDR);
$country = getenv(GEOIP_COUNTRY_NAME);
$country_code = getenv(GEOIP_COUNTRY_CODE);
echo "<br/>Your country : $country ( $country_code ) ";
?>
</body>
</html>
Проверяем в браузере http://yousite/geoip_test.php
Базы GeoIP обновляются раз в месяц, для поддержания актуальность баз необходимо их обновлять вручную или через планировщик задание crontab
- Пример использования GeoIP
Приведенный ниже код позволяет перенаправлять пользователей на сайты в зависимости от географического раположения
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
# редирект
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AS$
RewriteRule ^(.*)$ https://www.tecmint.com$1 [R,L]
Блокировка пользователей в зависимости от географического расположения
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
SetEnvIf GEOIP_COUNTRY_CODE AT BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry
# список стран с запрещенным доступом ....
Deny from env=BlockCountry
Разрешен доступ пользователей в зависимости от географического расположения
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
SetEnvIf GEOIP_COUNTRY_CODE AS AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
# ... страны с разрешенным доступом
Deny from all
Allow from env=AllowCountry
- Заключение
Данная статья рассматривает использование программного обеспечения GeoIP. Дополнительную информацию можно получить на сайте производителя http://www.maxmind.com

 (online network tools and utilities) |
|