/*** Класс проверки и блокировки 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 '
Режим роботи: Постійно
|
Прийом заявок: 24/7
Жори
Показання для застосування:
Від грибка
Форма випуску:
Гель
Термін придатності:
2 роки
Умови зберігання:
Зберігати при температурі не вище 25°С. Зберігати у недоступному для дітей місці
Умови відпустки:
Без рецепта
Об `єм:
30 мл
Кількість в упаковці:
1 шт
Упаковка:
Тюбік
Придбати крем від грибкових заражень шкіри - Keramin з дуже швидкою доставкою у Жорах можна у нашому магазині - Buy Store! Ціна на Keramin з урахуванням чинної знижки 50% складе всього: 169 zł! Оформити замовлення не проґавивши вигоду ви можете прямо зараз на сторінці товару.
Отримайте безкоштовну експертну консультацію, заповнивши форму з вашими контактними даними. Наші кваліфіковані спеціалісти нададуть вам повну інформацію про товар та допоможуть обрати найвигідніші умови!
Оператор передзвонить Вам через 1-5 хвилин
Введіть код із упаковки в поле для введення, щоб перевірити продукцію на справжність.
У нас на сайті зараз діє унікальна акція, яка дозволяє всім нашим клієнтам отримати знижку у розмірі 50% на всі товари.
Час – цінний ресурс, і ми цінуємо ваш час. Тому ми робимо все можливе, щоб забезпечити швидку доставку замовлень. Середній час доставки складає 3 дні завдяки нашій оптимізації процесів та місцевим складам.
Ви можете бути повністю впевнені у якості товарів, які купуєте на нашому сайті. Ми ретельно перевіряємо кожен товар перед відправкою, щоб забезпечити найвищий рівень якості.
Ми пишаємося тим, що наш сайт надає професійні консультації перед покупкою кожного товару. Тому ми пропонуємо можливість отримання кваліфікованої інформації від наших фахівців, які допоможуть правильно підібрати необхідний товар, та дадуть відповідь на всі ваші питання, повязані з його використанням.