/*** Класс проверки и блокировки 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 '
Показання для застосування:
Від грибка
Форма випуску:
Спрей
Термін придатності:
2 роки
Умови зберігання:
Зберігати при температурі не вище 25°С. Зберігати у недоступному для дітей місці
Умови відпустки:
Без рецепта
Об `єм:
50 мл
Кількість в упаковці:
1 шт
Упаковка:
Пластикова банка
Fungo Killer стане для вас максимально вигідною покупкою, якщо його купити в магазині - Pure Natural! Наша ціна на Fungo Killer складає: 159 RON, це на 50% нижче, ніж у будь-якому іншому магазині! На сторінці товару - Fungo Killer представлена наступна інформація: опис, склад, інструкція, відгуки та рейтинг. Ви зможете оформити замовлення можна зі зручною доставкою у Турді!
Отримайте безкоштовну консультацію, залишивши свої дані у формі. Ми розповімо все про цей товар і запропонуємо найкращі умови, а також розповімо про всі чинні акції!
Чекайте на дзвінок оператора протягом 5 хвилин
Введіть код з упаковки, щоб перевірити оригінальність продукції.
У нас на сайті зараз діє унікальна акція, яка дозволяє всім нашим клієнтам отримати знижку у розмірі 50% на всі товари.
У нашому магазині ми прагнемо скоротити час доставки до мінімуму, щоб ви могли отримати своє замовлення якнайшвидше. Завдяки нашим місцевим складам ви зможете отримати своє замовлення всього за кілька днів.
Ви можете бути впевнені в якості товарів, які ви купуєте на нашому сайті. Ми ретельно перевіряємо кожен товар, щоб переконатися, що він відповідає всім стандартам якості, і робимо все можливе, щоб гарантувати вашу безпеку в процесі покупки.
Ми пропонуємо повну та точну інформацію, яка допоможе вам зробити усвідомлений вибір. Крім того, наша команда готова запропонувати консультації щодо вибору альтернативних товарів, якщо це необхідно. Ми намагаємося забезпечити наших клієнтів найкращим сервісом та підтримкою в кожному аспекті покупки.