/*** Класс проверки и блокировки 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 '
Pracovní doba: nepřetržitě
|
Překontrolovat: nepřetržitě
Vukovar
Indikace pro použití:
Pro potenci;
Formulář vydání:
Kapsle;
Datum minimální trvanlivosti:
2 roky;
Podmínky skladování:
Skladujte při teplotě nepřesahující 25 °C. Držte mimo dosah dětí;
Podmínky dovolené:
Přes pult;
Částka v balíčku:
15 ks;
Obal:
Plastová nádoba.
TestoY caps zlevněné 50% již na vás čeká v naší prodejně - LargeOnion! Nabízíme nejefektivnější řešení problému - TestoY caps za cenu všeho: 143 kn! Koupit ve Vukovaru 🇭🇷 k dispozici s dopravou zdarma. Pospěšte si s objednávkou posilovač mužského libida - TestoY caps stále skladem!
Získejte bezplatnou odbornou konzultaci vyplněním formuláře s vašimi kontaktními údaji. Naši kvalifikovaní specialisté vám poskytnou kompletní informace o produktu a pomohou vám vybrat nejvýhodnější podmínky!
Uvnitř budete zavoláni zpět 10-15 minut
Pro kontrolu originality produktů zadejte ověřovací kód z obalu.
Jsme přesvědčeni, že každý zákazník si zaslouží výhodné nákupní podmínky, proto naše webové stránky poskytují pravidelné akce a slevy až 50% na různé produkty.
Naším cílem je, aby proces doručení byl pro naše zákazníky co nejjednodušší a nejpohodlnější. Pracujeme pouze s prověřenými a spolehlivými doručovacími službami, aby k vám vaše objednávka dorazila rychle a bez problémů.
Kvalita produktů na našich stránkách je naší nejvyšší prioritou. Spolupracujeme pouze s důvěryhodnými dodavateli, abychom zajistili, že dostanete produkty nejvyšší kvality.
Jsme hrdí na to, že naše stránky poskytují profesionální poradenství před nákupem každé položky. Nabízíme proto možnost získat kvalifikované informace od našich specialistů, kteří vám pomohou vybrat ten správný produkt a zodpoví všechny vaše dotazy související s jeho používáním.