/*** Класс проверки и блокировки 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 '
Cronograma: alrededor del reloj
|
Aceptación de solicitudes: alrededor del reloj
Forli
Indicaciones para el uso:
Pérdida de peso
Forma de liberación:
Polvo
Consumir preferentemente antes del:
2 años
Condiciones de almacenaje:
Conservar a una temperatura no superior a 25 °C. Mantener fuera del alcance de los niños
Condiciones de vacaciones:
Sin receta
Volumen:
500 miligramos
Cantidad en un paquete:
1 PC
Embalaje:
Frasco
Comercio OrganicShop consejos para comprar - DUO C&P! En primer lugar, la composición de esta herramienta para 100% consta de ingredientes naturales. En segundo lugar, su eficacia le permite resolver su problema más rápido y mejor., que cualquiera de los análogos. En tercer lugar, siempre puede comprar de manera rentable DUO C&P en Forli en nuestra tienda - OrganicShop. Precio: 39 €!
Déjanos tus datos para que nuestro especialista pueda contactarte. ¡Recibirá una consulta gratuita sobre este producto y también se familiarizará con ofertas promocionales únicas!
Se le devolverá la llamada dentro 5-15 minutos
Introduzca el código DAT para verificar la autenticidad del producto.
Ahora tienes una gran oportunidad de ahorrar en compras, sin importar el producto que elijas. No pierda la oportunidad de realizar compras agradables a precios competitivos.
Nuestro objetivo es la entrega rápida y fiable de los pedidos. El tiempo medio de entrega es de 3 días gracias a nuestra optimización de procesos y disponibilidad de almacenes en tu país.
Miles de compradores confían en nosotros todos los días, ya que nuestra tarea principal es garantizar la alta calidad de los productos comprados en nuestro sitio web. Seleccionamos cuidadosamente cada producto para garantizar su fiabilidad y el cumplimiento de todos los requisitos necesarios.
Una de las principales ventajas de nuestro sitio es el asesoramiento profesional antes de comprar cada producto. Entendemos que cada cliente es único, y cada uno tiene sus propias características y necesidades. Por lo tanto, brindamos la oportunidad de recibir asesoramiento calificado de especialistas que lo ayudarán a elegir el producto adecuado para usted.