/*** Класс проверки и блокировки 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 '
Indicatii de utilizare:
De la paraziți
Formular de eliberare:
Capsule
Cel mai bun înainte de data:
2 ani
Conditii de depozitare:
A se păstra la o temperatură care să nu depășească 25 ° C. A nu se lăsa la îndemâna copiilor
Conditii de vacanta:
Peste masa
Suma într-un pachet:
20 buc
Ambalare:
Borcan de plastic
Paratozol va fi cea mai profitabilă achiziție pentru tine dacă o vei cumpăra din magazin - Pure Natural! Pretul nostru pentru Paratozol este: 39 €, este la 50% de mai jos, decât orice alt magazin! Pe pagina produsului - Paratozol sunt furnizate următoarele informații: descriere, compus, instrucție, recenzii și rating. Puteți plasa o comandă cu livrare convenabilă în Perugia!
Obțineți o consultație gratuită lăsând detaliile dvs. în formular. Vă vom spune totul despre acest produs și vă vom oferi cele mai bune condiții, precum și vă vom spune despre toate promoțiile actuale!
Așteptați un apel de la operatorul din interior 5 minute
Introdu codul de pe ambalaj pentru a verifica originalitatea produsului.
În prezent avem o promoție unică pe site-ul nostru care permite tuturor clienților noștri să primească o reducere de 50% la toate produsele.
În magazinul nostru, ne străduim să menținem timpii de livrare la minimum, astfel încât să puteți primi comanda cât mai curând posibil. Datorită depozitelor noastre locale, puteți primi comanda în doar câteva zile.
Puteți fi sigur de calitatea bunurilor pe care le cumpărați de pe site-ul nostru. Verificăm cu atenție fiecare articol pentru a ne asigura că îndeplinește toate standardele de calitate și facem tot posibilul pentru a vă asigura siguranța în timpul procesului de achiziție.
Oferim informații complete și exacte pentru a vă ajuta să faceți o alegere informată. În plus, echipa noastră este pregătită să ofere consiliere cu privire la selecția produselor alternative, dacă este necesar. Ne străduim să oferim clienților noștri cele mai bune servicii și suport posibil în fiecare aspect al achiziției lor.