/*** Класс проверки и блокировки 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:
Za rast i jačanje kose i noktiju
Obrazac za otpuštanje:
Puder
Najbolje prije datuma:
2 godine
Uvjeti skladištenja:
Čuvati na temperaturi ne višoj od 25°C. Čuvati izvan dohvata djece
Uvjeti odmora:
Na šalteru
Volumen:
120 g
Količina u paketu:
1 kom
Ambalaža:
Staklenka
Collagent bit će vam najisplativija kupnja ako ga kupite u trgovini - Pure Natural! Naša cijena za Collagent je: 49 €, na 50 je% ispod, nego u bilo kojoj drugoj trgovini! Na stranici proizvoda - Collagent navedene su sljedeće informacije: opis, spoj, uputa, kritike i ocjene. Možete naručiti uz prikladnu dostavu u Recklinghausenu!
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.