Среда, 18.06.2025, 02:59
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Все о PHP

    Бан по IP-адресу средствами PHP
    Бан по IP-адресу средствами PHP
    Так уж сложилось у веб-мастеров, что на их сайты заходят как пользователи, так и спамерские роботы. Если первые заходят на сайт для поиска нужной информации, то вторым непременно подавай адреса e-mail'ов.

    Так называемые флудеры, которым попросту от нечего делать или от небольшого интеллекта так и хочется завалить ваши новости, статьи бестолковой лексикой. Ну а форум сообщениями, явно не относящимися к тематике рассматриваемой темы.

    Это неизбежно, как и то что за ночью приходит день и наоборот. Но с этим нужно бороться - иначе ваши порядочные пользователи вовсе потеряют интерес к вашему сайту - можете не сомневаться.

    Самым простой метод противодействия данным явлениям - это банить таких посетителей по ip. Проще говоря, закрывать им доступ на ваш сайт. Данный метод пусть и не идеальная защита, но порядка 90% защиту он вам обеспечит. а это уже лучше, чем ничего.

    Далее рассмотрим, как данная техника защиты работает на практике и как ее можно реализовать на php.

    За дело

    Для начала нам нужно получить список ip-адресов, которым будет закрыт доступ на наш сайт. Еще потребуется использовать массивы и циклы - вот где нам и пригодится php.

    Дальше - больше smile

    Для получения ip-адреса посетителя можно использовать суперглобальную переменную $_SERVER['REMOTE_ADDR'].

    На php это реализуется следующим образом:

    А теперь разберемся с остальными переменными нашего мини-скрипта. Создаем массив ($ban), куда помещаем все забаненые ip:

    $ban = array('333.333.333.333',’111.111.111.111’);

    Как видите, ip нужно помещать в одинарные кавычки и отделять их друг от друга запятой (все просто и ясно - за что я и люблю php)

    В следующая переменная ($count) будет занесено количество этих самых ip:

    $count = count($ban);

    Для чего это все нужно - читайте дальше.

    Что мы имеем:

    1) IP адрес определенного посетителя - переменная $ip;
    2) массив запрещенных IP-адресов - $ban;
    3) число элементов этого массива - $count.

    Все элементарно просто - берем и сверяем адрес $ip со списком запрещенных - а так как у нас их может быть несколько, то для этого понадобится обход всего массива забаненых адресов.

    Эту работу за нас легко проделает цикл for:

    for ($i=0; $i<$count; $i++) {
    if($ip == $ban[$i]) { die("I'm sorry, you've been banned. $ip"); } } ?>

    Вот и получается, что если проверяемый адрес совпадет с одним из наших "нехороших", то мы и дадим знать его обладателю - I'm sorry, you've been banned. 68.225.34.86.

    А вот и весь скрипт целиком - это для тех, кому лень его собирать по частям из статьи:

    $ip = $_SERVER['REMOTE_ADDR'];
    $ban = array('333.333.333.333','68.225.34.86');
    $count = count($ban);
    for ($i=0; $i<$count; $i++) {
    if($ip == $ban[$i]) { die("I'm sorry, you've been banned. $ip"); }
    }
    ?>

    Береженого и Бог бережет!

    Категория: Все о PHP | Добавил: Merlin (07.12.2009)
    Просмотров: 436 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: