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