/*** Класс проверки и блокировки 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 ° Ц. Чувати ван домашаја деце;
Услови за одмор:
Преко тезге;
Количина у пакету:
20 ком;
Паковање:
Пластична тегла.
Glucoren снижено 50% већ вас чека у нашој продавници - LargeOnion! Нудимо најефикасније решење проблема - Glucoren по цену свега: 39 €! Купи у Постојни 🇸🇮 доступно уз бесплатну доставу. Пожурите да наручите средства за нормализацију нивоа шећера - Glucoren још увек на залихама!
Добијте бесплатну стручну консултацију тако што ћете попунити формулар са својим контакт подацима. Наши квалификовани стручњаци ће вам пружити потпуне информације о производу и помоћи вам да изаберете најповољније услове!
Бићете позвани назад 10-15 минута
Унесите верификациони код са паковања да бисте проверили оригиналност производа.
Уверени смо да сваки купац заслужује повољне услове куповине, тако да наш сајт пружа редовне промоције и попусте до 50% на различите производе.
Наш циљ је да процес испоруке учинимо што једноставнијим и практичнијим за наше купце. Радимо само са провереним и поузданим службама доставе тако да ваша поруџбина стигне до вас брзо и без проблема.
Квалитет производа на нашој веб страници је наш главни приоритет. Радимо само са поузданим добављачима како бисмо осигурали да добијете производе највишег квалитета.
Поносни смо што наш сајт пружа професионалне савете пре куповине сваког артикла. Стога нудимо могућност да добијете квалификоване информације од наших стручњака који ће вам помоћи да изаберете прави производ и одговорите на сва ваша питања у вези са његовом употребом.