Скрипт блокировки ip адреса.

noy-spam

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

Совсем недавно я создал сайт с довольно перспективной тематикой. Он стал неплохо развиваться, пользователи потоками хлынули на сайт. Чтобы не терять времени и воспользоваться моментом, пока сайт находится на пике популярности, я решил подзаработать, сотрудничая с партнерской программой Stock-partners.com. Партнерство с ней приносило мне немалую прибыль, и я радовался как ребенок. Но в один прекрасный день, проснувшись, и зайдя на сайт, я обнаружил, что он атакован спамерами. На форуме моего сайта было уже немалое количество разделов, так один спамер не поленился и создал тему в каждом разделе, да еще и отписался под комментариями пользователей. Каков был мой ужас, когда я выяснил что с течением времени, 1/3 моих пользователей оказалась спамерами. Еестественно, количество посетителей сразу же уменьшилось чуть ли не в трое, и я стал стремительно терять в прибыли.

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

Представленный ниже php-скрипт обладает двумя уровнями защиты сайта: предупреждения спамера о том, что он будет заблокирован, и полная блокировка доступа по ip:

<?php
/* http://wm-help.net/ */
/* Сообщение при банне ip */
define(«bann_message», «Для вашего IP: %ip% доступ к сайту закрыт.»);

/* Предупреждение о возможности банна по ip */
define(«wrong_message», «Вы предупреждены администратором данного сайта о возможной блокировке вашего IP: %ip% в случае дальнейшего нарушения правил.»);

/* массив с ip и типом блокировки. в ключе массива IP, в значении тип блокировки */
$bann_array = array(
«195.66.203.247″=>»bann», // реальный плохой IP
«220.94.220.60″=>»bann», // реальный плохой IP
//»127.0.0.1″=>»wrong» // Test
);

/* Функция для почти 100% определения IP адреса посетителя. */
/* Перебирает все возможные переменные с IP. */
function _ip()
{
if(isset($HTTP_SERVER_VARS)) {
if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
$realip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) {
$realip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}else{
$realip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
}else{
if(getenv( ‘HTTP_X_FORWARDED_FOR’ ) ) {
$realip = getenv( ‘HTTP_X_FORWARDED_FOR’ );
}elseif ( getenv( ‘HTTP_CLIENT_IP’ ) ) {
$realip = getenv( ‘HTTP_CLIENT_IP’ );
}else {
$realip = getenv( ‘REMOTE_ADDR’ );
}
}
return $realip;
}

/* Определяет, что делать с владельцем того или иного ip адреса */
function bann_on_not_to_bann()
{
global $bann_array; // получаем массив с ip адресами
$user_ip = _ip(); // получаем ip

/* разбираем массив на ключ и значение */
foreach($bann_array as $ip=>$type)
{
if ($ip == $user_ip) // проверяем
{
switch($type) // если ip совпал то смотрим что делать
{
case «wrong»: // предупреждение
{
echo str_replace(«%ip%», $user_ip, wrong_message); // выводим предупреждение
break; // выход из switch
}
case «bann»: // блокировка
{
die(str_replace(«%ip%», $user_ip, bann_message)); // Сообщение о том, что доступ закрыт + завершение работы php
// break не требуется т.к. дальше уже ничего не выполняется
}
}
}
}
}

/* проверяем владельца ip и блокируем\предупреждаем если это спамер */
bann_on_not_to_bann();
?>

Чтобы воспользоваться данным скриптом, вам необходимо будет создать php-файл ip_bann.php. Поместите в него код скрипта, описанного выше. Затем вам нужно будет дописать строчку include ‘ip_bann.php’; в начале основного скрипта (как правило, это index.php)

Одно из чудес света находится в Египте — это пирамиды, советую отправиться в туристический отдых в хургаде цены приемлемые.

© SEO blog

Твитнуть

Понравилась статья?

Подписка на обновления блога через RSS ленту или по электронной почте, а так же следуй за мной в твиттере.

Ваш комментарий

Перед отправкой формы:
Все права защищены ©SEO blog
  1. Max1mus01.05.2010 - 18:26

    Полезная инфа. У меня просто сейчас стоит плагин Disqus Comments, но там
    можно блокировать только по имени пользователя и по e-mail, а с этого толку
    ноль. В принципе, некоторые имбицилы активно юзают прокси, поэтому бан по ip
    для них не проблема.

  2. Попробую этот скрипт на своем сайте, а то спам валит в наглую даже
    порой антиспам не помогает(

  3. minigamer06.05.2010 - 13:02

    Антисам вам в помощь, с фильтрами по ip.

  4. Colly06.05.2010 - 16:57

    Согласен. Спам уже поднадоел. И я тоже работаю со StockPartners )

  5. manyunya13.05.2010 - 13:44

    Надоел — это мягко сказано. Он везде: на почте, в ICQ ..везде…
    И, похоже, панацеи от него нет.

  6. SP — рулит в РУ среди ФО

О блоге

Здравствуйте, я занимаюсь продвижением сайтов и изучаю seo-технологии, только практический опыт создания и продвижения сайтов.