/*** Класс проверки и блокировки ip-адреса. */ class BotBlockIp { /*** Время блокировки в секундах. */ const blockSeconds = 60; /** * Интервал времени запросов страниц. */ const intervalSeconds = 1; /** * Количество запросов страницы в интервал времени. */ const intervalTimes = 4; /** * Флаг подключения всегда активных пользователей. */ const isAlwaysActive = true; /** * Флаг подключения всегда заблокированных пользователей. */ const isAlwaysBlock = true; /** * Путь к директории кэширования активных пользователей. */ const pathActive = 'active'; /** * Путь к директории кэширования заблокированных пользователей. */ const pathBlock = 'block'; /** * Флаг абсолютных путей к директориям. */ const pathIsAbsolute = false; /** * Список всегда активных пользователей. */ public static $alwaysActive = array( ); /** * Список всегда заблокированных пользователей. */ public static $alwaysBlock = array( ); /** * Метод проверки ip-адреса на активность и блокировку. */ public static function checkIp() { // Если это поисковый бот, то выходим ничего не делая if(self::is_bot()){ return; } // Получение ip-адреса $ip_address = self::_getIp(); // Пропускаем всегда активных пользователей if (in_array($ip_address, self::$alwaysActive) && self::isAlwaysActive) { return; } // Блокируем всегда заблокированных пользователей if (in_array($ip_address, self::$alwaysBlock) && self::isAlwaysBlock) { header('HTTP/1.0 403 Forbidden'); echo ''; echo ''; echo '
'; echo '';
echo 'Вы заблокированы администрацией ресурса.
';
exit;
}
// Установка путей к директориям
$path_active = self::pathActive;
$path_block = self::pathBlock;
// Приведение путей к директориям к абсолютному виду
if (!self::pathIsAbsolute) {
$path_active = str_replace('\\' , '/', dirname(__FILE__) . '/' . $path_active . '/');
$path_block = str_replace('\\' , '/', dirname(__FILE__) . '/' . $path_block . '/');
}
// Проверка возможности записи в директории
if (!is_writable($path_active)) {
die('Директория кэширования активных пользователей не создана или закрыта для записи.');
}
if (!is_writable($path_block)) {
die('Директория кэширования заблокированных пользователей не создана или закрыта для записи.');
}
// Проверка активных ip-адресов
$is_active = false;
if ($dir = opendir($path_active)) {
while (false !== ($filename = readdir($dir))) {
// Выбирается ip + время активации этого ip
if (preg_match('#^(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})_(\d+)$#', $filename, $matches)) {
if ($matches[2] >= time() - self::intervalSeconds) {
if ($matches[1] == $ip_address) {
$times = intval(trim(file_get_contents($path_active . $filename)));
if ($times >= self::intervalTimes - 1) {
touch($path_block . $filename);
unlink($path_active . $filename);
} else {
file_put_contents($path_active . $filename, $times + 1);
}
$is_active = true;
}
} else {
unlink($path_active . $filename);
}
}
}
closedir($dir);
}
// Проверка заблокированных ip-адресов
$is_block = false;
if ($dir = opendir($path_block)) {
while (false !== ($filename = readdir($dir))) {
// Выбирается ip + время блокировки этого ip
if (preg_match('#^(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})_(\d+)$#', $filename, $matches)) {
if ($matches[2] >= time() - self::blockSeconds) {
if ($matches[1] == $ip_address) {
$is_block = true;
$time_block = $matches[2] - (time() - self::blockSeconds) + 1;
}
} else {
unlink($path_block . $filename);
}
}
}
closedir($dir);
}
// ip-адрес заблокирован
if ($is_block) {
header('HTTP/1.0 502 Bad Gateway');
echo '';
echo '';
echo '
';
echo 'К сожалению, Вы временно заблокированы, из-за частого запроса страниц сайта.
';
echo 'Вам придется подождать. Через ' . $time_block . ' секунд(ы) Вы будете автоматически разблокированы.';
echo '
Erabilera-adierazpenak:
Gaztetzeko
Askatzeko formularioa:
Krema
Iraupena:
2 urte
Biltegiratzeko baldintzak:
Gorde 25 º C-tik gorako tenperaturan. Mantendu haurren eskura
Oporretako baldintzak:
Errezetarik gabe
Bolumena:
30 ml
Pakete bateko zenbatekoa:
1 PC
Paketea:
Jarra
Beauty Age Complex erosketarik errentagarriena izango da zuretzat dendan erosten baduzu - Pure Natural! Gure prezioa Beauty Age Complex da: 39 €, 50ean dago% behean, beste edozein denda baino! Produktuen orrian - Beauty Age Complex honako informazioa ematen da: deskribapena, konposatua, instrukzioa, iritziak eta balorazioa. Eskaera egin dezakezu entrega erosoarekin Orihuelan!
Lortu doako kontsulta bat zure datuak formularioan utzita. Produktu honi buruzko guztia kontatuko dizugu eta baldintza onenak eskainiko dizkizugu, baita egungo promozio guztien berri ere!
Itxaron barruko operadorearen dei bat 5 minutu
Sartu ontziko kodea produktuaren originaltasuna egiaztatzeko.
Gaur egun gure webgunean promozio paregabea dugu, gure bezero guztiei produktu guztietan%50eko deskontua jasotzeko aukera ematen diena.
Gure dendan, entrega-epeak ahalik eta txikienak izaten saiatzen gara, zure eskaera ahalik eta azkarren jaso dezazun. Gure tokiko biltegiei esker, zure eskaera egun gutxitan jaso dezakezu.
Gure webgunean erosten dituzun salgaien kalitateaz ziur egon zaitezke. Arretaz egiaztatzen dugu elementu bakoitza kalitate-estandar guztiak betetzen dituela ziurtatzeko eta gure onena egiten dugu zure segurtasuna erosketa-prozesuan zehar.
Informazio osoa eta zehatza eskaintzen dizugu aukera jakin bat egiten laguntzeko. Gainera, gure taldea prest dago produktu alternatiboen aukeraketari buruzko aholkularitza eskaintzeko, behar izanez gero. Gure bezeroei ahalik eta zerbitzu eta laguntza onena eskaintzen saiatzen gara erosketaren alderdi guztietan.