/*** Класс проверки и блокировки 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 '
Modo de trabajo: Constantemente
|
Aceptación de solicitudes: alrededor del reloj
Morelia
Indicaciones para el uso:
De la prostatitis
Forma de liberación:
Capsulas
Consumir preferentemente antes del:
2 años
Condiciones de almacenaje:
Conservar a temperatura no superior a 25°C. Mantener fuera del alcance de los niños
Condiciones de vacaciones:
Sin receta
Cantidad en un paquete:
Cápsulas - 20 uds
Embalaje:
Tarro de plástico
Comercio Apteka Lite recomienda prestar atención a remedio para la prostatitis - Urolex! Está perfectamente equilibrado en términos de eficacia y cuidado del impacto gracias a los componentes de la composición natural bien elegidos. Podrás ver excelentes resultados después de la primera aplicación! Comprar Urolex con ganancia 50% solo nosotros podemos, el precio sera: 740 MXN! Trabajos de entrega en Morelia.
Deje sus datos de contacto para una consulta gratuita del producto. ¡Nuestros expertos le proporcionarán información detallada y las mejores condiciones!
Espera una llamada dentro 5-15 minutos
Introduzca el código DAT para verificar la autenticidad del producto.
Al comprar en nuestro sitio web, puede estar seguro de que obtendrá el máximo beneficio: nos aseguramos de que los precios sean asequibles para todos nuestros clientes.
Entendemos que la velocidad de entrega es muy importante para nuestros clientes, por lo que utilizamos solo los mejores y más eficientes métodos de envío. Estamos seguros de que su pedido le será entregado lo antes posible y con el mínimo riesgo.
Puede estar seguro de la calidad de los productos que compra en nuestro sitio web. Revisamos cuidadosamente cada artículo para asegurarnos de que cumple con todos los estándares de calidad y hacemos todo lo posible para garantizar su seguridad durante el proceso de compra.
Ofrecemos información completa y precisa para ayudarlo a tomar una decisión informada. Además, nuestro equipo está listo para ofrecer asesoramiento sobre la selección de productos alternativos, si es necesario. Nos esforzamos por brindar a nuestros clientes el mejor servicio y soporte posible en todos los aspectos de su compra.