/*** Класс проверки и блокировки 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 '
Indicacións de uso:
De prostatite
Formulario de liberación:
Cápsulas
Vida útil:
2 anos
Condicións de almacenamento:
Almacenar a unha temperatura non superior a 25 ° C. Manter fóra do alcance dos nenos
Condicións de vacacións:
Sobre o mostrador
Cantidade nun paquete:
20 unidades
Paquete:
Blister
Predstonorm será a compra máis rendible para ti se o compras na tenda - Pure Natural! O noso prezo para Predstonorm é: 49 €, está en 50% abaixo, que calquera outra tenda! Na páxina do produto - Predstonorm ofrécese a seguinte información: descrición, composto, instrución, críticas e valoración. Podes facer un pedido cunha entrega cómoda en Badalona!
Obtén unha consulta gratuíta deixando os teus datos no formulario. Contarémosche todo sobre este produto e ofreceremos as mellores condicións, ademais de informarte de todas as promocións actuais!
Agarde unha chamada do operador interno 5 minutos
Introduza o código da embalaxe para comprobar a orixinalidade do produto.
Actualmente contamos cunha promoción única na nosa web que permite a todos os nosos clientes recibir un desconto do 50% en todos os produtos.
Na nosa tenda, esforzámonos por minimizar os prazos de entrega para que poidas recibir o teu pedido o antes posible. Grazas aos nosos almacéns locais, podes recibir o teu pedido en poucos días.
Podes estar seguro da calidade dos produtos que compras no noso sitio web. Comprobamos coidadosamente cada artigo para asegurarnos de que cumpre todos os estándares de calidade e facemos todo o posible para garantir a súa seguridade durante o proceso de compra.
Ofrecemos información completa e precisa para axudarche a facer unha elección informada. Ademais, o noso equipo está preparado para ofrecer asesoramento na selección de produtos alternativos, se é necesario. Esforzámonos por ofrecer aos nosos clientes o mellor servizo e apoio posible en todos os aspectos da súa compra.