Определяем страну по IP через модуль GEOIP

  • XJIOP
  • 06 августа 2014 в 16:59
  • СисАдмин 
  • -= SYSOP =-
    • Рейтинг: 3
    • Комментариев: 398
    • Загрузили: 1.34 ТБ
    • Скачали: 483.43 ГБ
    Для этого нам понадобится всего два файла

    файл функции для определения стран
    переименуем его в geoip.php и закинем в папку /home/www/include/

    второй файл это база данных которая обновляется раз в месяц
    берем отсюда

    упрощающая функция доступа к модулю
    function check_country($ip = false) {

    $ip = ($ip ? $ip : htmlspecialchars($_SERVER["REMOTE_ADDR"]));
    include_once("/home/www/include/geoip.php");
    $gi = geoip_open("/home/www/include/GeoIP/GeoIP.dat", GEOIP_STANDARD);
    $code = strtolower(geoip_country_code_by_addr($gi, $ip));
    geoip_close($gi);
    $code = ($code ? $code : 'un');

    return $code;
    }
    пример запрета пользователей из россии
    if(check_country() == 'ru')
    die("access denied...");
    базу можно автоматически обновлять раз в месяц через крон

    создадим файл /usr/src/updateGeoIP.sh и пропишем туда
    #!/bin/sh
    cd /usr/src
    wget -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
    gzip -d -f GeoIP.dat.gz
    mv GeoIP.dat /home/www/include/GeoIP/
    далее прописываем в крон правило
    0 6 10 * * /bin/sh /usr/src/updateGeoIP.sh

    --------------------

    for (;;) { echo rand(0,1); }
    Файлы обмена предоставлены пользователями трекера, администрация не несет ответственность за их содержание. Большая просьба не заливать файлы, защищенными авторскими правами, а так же файлы с нелегальным содержанием.
    Рейтинг торрент трекеров