Модуль определения географического положения по IP - mod_GeoIP

Неплохой модуль для apache 1.3 - по IP посетителя определяется его страна, регион и город. Может пригодиться, чтобы зарубить левых посетителей - китайцев, например, или америкосов. Всё равно им у меня на сайте делать нечего :)
Итак, ставим из портов:

/usr/home/lissyara/>
/usr/home/lissyara/>cd /usr/ports/
/usr/ports/>make search name='mod_geoip'
Port: mod_geoip-1.2.7
Path: /usr/ports/www/mod_geoip
Info: An Apache module that provides the country code of the client's IP
Maint: seanc@FreeBSD.org
B-deps: GeoIP-1.3.14 apache-1.3.34_3 expat-1.95.8_3 perl-5.8.7_2
R-deps: GeoIP-1.3.14 apache-1.3.34_3 expat-1.95.8_3 perl-5.8.7_2
WWW: http://www.maxmind.com/app/mod_geoip

Port: mod_geoip2-1.1.7
Path: /usr/ports/www/mod_geoip2
Info: An Apache module that provides the country code of the client's IP
Maint: jau@iki.fi
B-deps: GeoIP-1.3.14 apache-2.0.55_2 expat-1.95.8_3 libiconv-1.9.2_1 perl-5.8.7_2
R-deps: GeoIP-1.3.14 apache-2.0.55_2 expat-1.95.8_3 libiconv-1.9.2_1 perl-5.8.7_2
WWW: http://www.maxmind.com/app/mod_geoip

/usr/ports/>cd /usr/ports/www/mod_geoip
/usr/ports/www/mod_geoip/>make && make install && make clean
......................................
......................................
************************************************************
Please edit your apache.conf or httpd.conf to enable and
setup this module.

You can always refer to the useful documents held in
${PREFIX}/share/doc/mod_geoip/, where ${PREFIX} is
typically /usr/local.

When it's done, do the following to take effect:

apachectl configtest (and correct any errors reported)
apachectl restart

************************************************************
/usr/ports/www/mod_geoip/>pkg_info | grep "[Gg]eo"
GeoIP-1.3.14 Find the country that any IP address or hostname originates
mod_geoip-1.2.7 An Apache module that provides the country code of the clie
/usr/ports/www/mod_geoip/>

Он за собой тащит собственно GeoIP - из него ему нужна БД. После установки редактируем конфиг апача - раскомментруем модуль mod_geoip:
/usr/local/etc/apache/httpd.conf

LoadModule geoip_module libexec/apache/mod_geoip.so
AddModule mod_geoip.c

И добавляем такие строки:

<IfModule mod_geoip.c>
##### модуль GeoIP начался
#
# Включаем модуль
GeoIPEnable On
# Указываем путь к БД (в доках говориться, что
# надо тока если местоположение БД нестандартное, но
# какое считается стандартным - нигде не нашёл - потому
# на всякий случай указываю) - БД инсталлится вместе с
# портом GeoIP.
GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat
# Следующая директива устанавливает где применяется модуль
# GeoIP (по крайней мере я так понял) - тока в примечаниях apache (Notes),
# только в переменных окружения (Env) или везде (All - по дефолту):
GeoIPOutput All
# заставляет проверять БД GeoIP.dat чтобы определить, обновлялась ли БД
# нужно чтобы не перезапускать апач при обновлении БД
GeoIPFlags CheckCache

###### пример блокировки отдельных стран
# Блокируем косоглазеньких - всё равно ничё не поймут
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
# Блокируем америкосов - тоже ничё не поймут, тупые слишком.
SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry
# Что мы, собствено, делаем по вышеуказанным правилам,
# это должно быть в директории которую блокируем, т.е. внутри
# <Directory "/usr/local/www/data">
# ...............
#Deny from env=BlockCountry
# </Directory>
</IfModule>

После чего перезапускаем апач, и пробуем, что у нас получилось, таким скриптиком, на php:

<pre>
Откуда припёрся:
<?
php
$country_code
= apache_note("GEOIP_COUNTRY_CODE");
$region = apache_note("GEOIP_REGION");
$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>

Вот его вывод, для московского IP:

Откуда припёрся:
Код страны: RU
Регион:
Имя страны: Russian Federation
Город:

Если заходить с частного IP (192.168.x.x) то не покажет ничего :) Почему не показал регион и город - я так думаю что нас считают страной дикой, где кроме медведей, ядерных ракет, и людей в телогрейках и шапках-ушанках ничего и нету... Кстати, в примерах, на сайте автора модуля, был пример, как заблокировать доступ с региона RU. Я же в ответ привёл примёр как залочить буржуев :) Пшли нах :)

P.S. Добавлено по итогам первого комментария. Где взять базы - тут лежит какая-то программа, не вникал. К ней идуд базы. Надо поставить `expert`-версию, после чего установятся базы. Базы копируем куда надо, правим чутка конфиг:

<IfModule mod_geoip.c>
##### модуль GeoIP начался
#
# Включаем модуль
GeoIPEnable On
# Указываем путь к БД (в доках говориться, что
# надо тока если местоположение БД нестандартное, но
# какое считается стандартным - нигде не нашёл - потому
# на всякий случай указываю) - БД инсталлится вместе с
# портом GeoIP.
GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat
GeoIPDBFile /usr/local/share/GeoIP/GeoIPCity.dat
GeoIPDBFile /usr/local/share/GeoIP/GeoIPOrg.dat
# Следующая директива устанавливает где применяется модуль
# GeoIP (по крайней мере я так понял) - тока в примечаниях apache (Notes),
# только в переменных окружения (Env) или везде (All - по дефолту):
GeoIPOutput All
# заставляет проверять БД GeoIP.dat чтобы определить, обновлялась ли БД
# нужно чтобы не перезапускать апач при обновлении БД
GeoIPFlags CheckCache

###### пример блокировки отдельных стран
# Блокируем косоглазеньких - всё равно ничё не поймут
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
# Блокируем америкосов - тоже ничё не поймут, тупые слишком.
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
# Что мы, собствено, делаем по вышеуказанным правилам,
# это должно быть в директории которую блокируем, т.е. внутри
# <Directory "/usr/local/www/data">
# ...............
#Deny from env=BlockCountry
# </Directory>
</IfModule>

После чего доступно больше данных (судя по всему есть ещё база провайдеров, т.к. ISP у меня не высвечивается):

<?
<
pre>
<
b>Откуда припёрся</b>
<?
php
$country_code
= apache_note("GEOIP_COUNTRY_CODE");
$region = apache_note("GEOIP_REGION");
$country_name = apache_note("GEOIP_COUNTRY_NAME");
$city = apache_note("GEOIP_CITY");
$connect_type = apache_note("GEOIP_NETSPEED");
$dma_code = apache_note("GEOIP_DMA_CODE");
$area_code = apache_note("GEOIP_AREA_CODE");
$latitude = apache_note("GEOIP_LATITUDE");
$longitude = apache_note("GEOIP_LONGITUDE");
$postal_code = apache_note("GEOIP_POSTAL_CODE");
$organization = apache_note("GEOIP_ORGANIZATION");
$isp = apache_note("GEOIP_ISP");

echo
"Код страны:  " . $country_code . "\n";
echo
"Регион:      " . $region . "\n";
echo
"Имя страны:  " . $country_name . "\n";
echo
"Город:       " . $city . "\n";
echo
"Скорость:    " . $connect_type . "\n";
echo
"dma_code:    " . $dma_code . "\n";
echo
"area_code:   " . $area_code . "\n";
echo
"latitude:    " . $latitude . "\n";
echo
"longitude:   " . $longitude . "\n";
echo
"postal_code: " . $postal_code . "\n";
echo
"Организация: " . $organization . "\n";
echo
"Провайдер:   " . $isp . "\n";

?>

Откуда припёрся
Код страны: RU
Регион: 48
Имя страны: Russian Federation
Город: Moscow
Скорость:
dma_code: 0
area_code: 0
latitude: 55.752201
longitude: 37.615601
postal_code:
organization:Network of NICEVT
isp:

Половина пунктов не вполне понятна... Ну да и не важно.

Автор: lissyara
Сайт автора: lissyara.su






Комментировать





  • » Подарки от Sape к Новому Году и с Новым Годом !
  • » Биржа тизерной рекламы Teaser Gate
  • » Биржа профессиональной интернет-рекламы Ruler Click
  • » Партнерская программа Casino Partners
  • » Партнерская программа по дополнительной монетизации сайта
  • » Directadmin: подготовка к установке
  • » 10 советов, которые помогут повысить уровень конвертации целевых страниц
  • » Сервис Odnaknopka.ru не работает?
  • » Биржа статей "Артикс"
  • » Партнерская программа "Готовые Сайты"
  • » CentOS: Настройка часового пояса и синхронизация времени
  • » Анонс новой биржи купли-продажи вечных ссылок - Kazapa
  • » Зачем и как с минимальными потерями обменять электронную валюту
  • » CentOS: mod_perl, directadmin
  • » Партнерская программа по продаже ПО и информационных услуг
  • » Основные принципы продвижения сайта статьями
  • » Конфигурационный файл сервера Apache - httpd.conf
  • » Биржа трафика для развлекательных сайтов Traff Ru
  • » Первая бесплатная биржа ссылок и статей Мордаха
  • » Новый конкурс «FOREX CLUB Блоггер». Выиграй Apple iPad
  • » Прогрессивный ссылочный агрегатор Кувалда
  • » Партнерская программа Gameboss
  • » CS Sape Master: универсальный клиент для SAPE
  • » Биржа продажи ссылок буржуям MainLinkAds
  • » Компания "Money Time Invest" по управлениею денежными средствами
  • » Список партнерок, кидающих с выплатами
  • » Партнёрская программа по конвертации русского кинотрафика
  • » Автоматизированный инструмент для работы с биржами вечных ссылок GoGetTop
  • » Альтернатива Блогуну или очередной аутсайдер?
  • » ВНИМАНИЕ! Акция «TunnelFOREX» продлится до 11 июня!
  • » Setup.ru — самый удобный конструктор сайтов
  • » 6 секретов успеха от Деда Мороза
  • » Аудит от Анара Бабаева: bazamaki.ru
  • » Обновление ТИЦ 07.12.2012
  • » 1 сентября: вебинар «Продвижение с Sape»
  • » «Блогуну» 5 лет: мы развиваемся, обновляемся и становимся удобнее!
  • » Книга «Создание сайтов». Анар Бабаев, Николай Евдокимов, Михаил Боде.
  • » SEO-аудит от Николая Евдокимова: juristka.com
  • » Мы строили-строили и наконец построили
  • » Бесплатный мониторинг позиций в ПС
  • » 8 советов по созданию вирусной публикации: максимальный резонанс при минимуме затрат!
  • » Добавляем цензуру на ссылки.
  • » Доначисление за 12 декабря – часть два
  • » Новый код для продажи объявлений
  • » Совместный вебинар Sape.ru и Ingate «Статистический анализ донорно-акцепторных связей: доступно о сложном»
  • » Покупка ссылок без преград: от суток до десятилетия
  • » Letidor раскрывает секреты продвижения и монетизации проекта через liveJournal.
  • » Важное по API
  • » VIII-й ежегодный Саммит Брендов-Лидеров: видео-отчет
  • » График дальнейшей работы. С наступившим концом света!
  • » В Articles.Sape открыт раздел «Извещения»
  • » Словари
  • » Экспертиза проекта day24h.ru
  • » Настройка порядка проверки параметров
  • » МОСКОВСКИЙ МЕЖДУНАРОДНЫЙ ФЕСТИВАЛЬ РЕКЛАМЫ И МАРКЕТИНГА REDAPPLE
  • » Сео-конференция & HiText. Продолжение следует…
  • » Географическое расположение сервера
  • » Аудит от Николая Евдокимова: best-urist.ru
  • » SeoPult-эксперт: «Как попасть в ТОП Яндекса по ВЧ- и ВК-запросам без ссылок»
  • » Считается ли спамом перенаправление пользователей в зависимости от геолокации?


Категории


Полезные заметки

Популярные записи