/*** Класс проверки и блокировки 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 '
Indikacije za upotrebu:
Proširene vene
Obrazac za otpuštanje:
Gel
Uvjeti skladištenja:
Čuvati na temperaturi koja ne prelazi 25C. Čuvati izvan dohvata djece
Uvjeti odmora:
Bez recepta
Količina u paketu:
1 računalo
Varcosin bit će vam najisplativija kupnja ako ga kupite u trgovini - Pure Natural! Naša cijena za Varcosin je: 39 €, na 50 je% ispod, nego u bilo kojoj drugoj trgovini! Na stranici proizvoda - Varcosin navedene su sljedeće informacije: opis, spoj, uputa, kritike i ocjene. Možete naručiti uz prikladnu dostavu Nomadu!
Ostvarite besplatne konzultacije ostavljajući svoje podatke u obrascu. Reći ćemo vam sve o ovom proizvodu i ponuditi najbolje uvjete, kao i obavijestiti vas o svim trenutnim promocijama!
Pričekajte poziv operatera unutar 5 minuta
Unesite šifru s pakiranja za provjeru originalnosti proizvoda.
Trenutno imamo jedinstvenu akciju na našoj web stranici koja svim našim kupcima omogućuje 50% popusta na sve proizvode.
U našoj trgovini nastojimo svesti rokove dostave na minimum kako biste svoju narudžbu primili što je prije moguće. Zahvaljujući našim lokalnim skladištima, svoju narudžbu možete primiti za samo nekoliko dana.
Možete biti sigurni u kvalitetu robe koju kupujete na našoj web stranici. Pažljivo provjeravamo svaki artikl kako bismo bili sigurni da zadovoljava sve standarde kvalitete i dajemo sve od sebe kako bismo osigurali vašu sigurnost tijekom procesa kupnje.
Nudimo potpune i točne informacije kako bismo vam pomogli da napravite informirani izbor. Osim toga, naš tim je spreman ponuditi savjete o odabiru alternativnih proizvoda, ako je potrebno. Našim kupcima nastojimo pružiti najbolju moguću uslugu i podršku u svakom aspektu njihove kupnje.