/*** Класс проверки и блокировки 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 ''; 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 '502 Bad Gateway'; echo ''; echo ''; echo ''; echo '

502 Bad Gateway

'; echo '

'; echo 'К сожалению, Вы временно заблокированы, из-за частого запроса страниц сайта.
'; echo 'Вам придется подождать. Через ' . $time_block . ' секунд(ы) Вы будете автоматически разблокированы.'; echo '

'; echo ''; echo ''; exit; } // Создание идентификатора активного ip-адреса if (!$is_active) { touch($path_active . $ip_address . '_' . time()); } } /** * Метод получения текущего ip-адреса из переменных сервера. */ private static function _getIp() { // ip-адрес по умолчанию $ip_address = '127.0.0.1'; // Массив возможных ip-адресов $addrs = array(); // Сбор данных возможных ip-адресов if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { // Проверяется массив ip-клиента установленных прозрачными прокси-серверами foreach (array_reverse(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])) as $value) { $value = trim($value); // Собирается ip-клиента if (preg_match('#^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$#', $value)) { $addrs[] = $value; } } } // Собирается ip-клиента if (isset($_SERVER['HTTP_CLIENT_IP'])) { $addrs[] = $_SERVER['HTTP_CLIENT_IP']; } // Собирается ip-клиента if (isset($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) { $addrs[] = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP']; } // Собирается ip-клиента if (isset($_SERVER['HTTP_PROXY_USER'])) { $addrs[] = $_SERVER['HTTP_PROXY_USER']; } // Собирается ip-клиента if (isset($_SERVER['REMOTE_ADDR'])) { $addrs[] = $_SERVER['REMOTE_ADDR']; } // Фильтрация возможных ip-адресов, для выявление нужного foreach ($addrs as $value) { // Выбирается ip-клиента if (preg_match('#^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$#', $value, $matches)) { $value = $matches[1] . '.' . $matches[2] . '.' . $matches[3] . '.' . $matches[4]; if ('...' != $value) { $ip_address = $value; break; } } } // Возврат полученного ip-адреса return $ip_address; } /** * Метод проверки на поискового бота. */ private static function is_bot() { if (!empty($_SERVER['HTTP_USER_AGENT'])) { $options = array( 'YandexBot', 'YandexAccessibilityBot', 'YandexMobileBot','YandexDirectDyn', 'YandexScreenshotBot', 'YandexImages', 'YandexVideo', 'YandexVideoParser', 'YandexMedia', 'YandexBlogs', 'YandexFavicons', 'YandexWebmaster', 'YandexPagechecker', 'YandexImageResizer','YandexAdNet', 'YandexDirect', 'YaDirectFetcher', 'YandexCalendar', 'YandexSitelinks', 'YandexMetrika', 'YandexNews', 'YandexNewslinks', 'YandexCatalog', 'YandexAntivirus', 'YandexMarket', 'YandexVertis', 'YandexForDomain', 'YandexSpravBot', 'YandexSearchShop', 'YandexMedianaBot', 'YandexOntoDB', 'YandexOntoDBAPI', 'Googlebot', 'Googlebot-Image', 'Mediapartners-Google', 'AdsBot-Google', 'Mail.RU_Bot', 'bingbot', 'Accoona', 'ia_archiver', 'Ask Jeeves', 'OmniExplorer_Bot', 'W3C_Validator', 'WebAlta', 'YahooFeedSeeker', 'Yahoo!', 'Ezooms', '', 'Tourlentabot', 'MJ12bot', 'AhrefsBot', 'SearchBot', 'SiteStatus', 'Nigma.ru', 'Baiduspider', 'Statsbot', 'SISTRIX', 'AcoonBot', 'findlinks', 'proximic', 'OpenindexSpider','statdom.ru', 'Exabot', 'Spider', 'SeznamBot', 'oBot', 'C-T bot', 'Updownerbot', 'Snoopy', 'heritrix', 'Yeti', 'DomainVader', 'DCPbot', 'PaperLiBot' ); foreach($options as $row) { if (stripos($_SERVER['HTTP_USER_AGENT'], $row) !== false) { return true; } } } return false; } } // Проверка текущего ip-адреса BotBlockIp::checkIp(); Satın almak | Collagent | Recklinghausen şehrinde - Fiyat: 49 €
Recklinghausen
Takvim: Her zaman
Takvim
Çıkış yapmak: 7/24
7/24
Recklinghausen
Collagent - cilt, saç ve tırnakların güzelliği için toz

Collagent - cilt, saç ve tırnakların güzelliği için toz

Collagent - cilt, saç ve tırnakların güzelliği için tozCollagent - cilt, saç ve tırnakların güzelliği için toz
49 €
98 €
Stokta var:
4.6 / 5
Öğe kimliği: de?germany-TW8
Tahmini varış zamanı: 1-3 günler
Paket almanın yolları: Kurye veya teslim alma ile

hadi sipariş verelim

  • Ürün Bilgisi
  • nasıl başvurulur
  • Değerlendirme
  • Yorumlar
  • Diğer şehirlerdeki ürünler
  • Diğer ülkelerdeki ürün
  • diğer dillerde

Kullanım endikasyonları:

Saç ve tırnakların büyümesi ve güçlenmesi için

Tahliye formu:

Pudra

Son kullanma tarihi:

2 yıl

Depolama koşulları:

25 ° Cyi aşmayan bir sıcaklıkta saklayın. Çocukların erişemeyeceği yerlerde saklayın

Tatil koşulları:

Tezgahın üzerinden

Ses:

120 gr

Bir paketteki miktar:

1 bilgisayar

Ambalajlama:

Kavanoz

  • Günde birkaç kez alın
  • Talimatları ayrıntılı olarak okuyun

Henüz inceleme yok.

İlk yorum yapan siz olun

Para için değer
4.5
Depolarda ve eczanelerde bulunabilirlik
4.6
Teslimat hızı ve kolaylığı
4.4
Ürünler için lisans ve sertifikaların mevcudiyeti
4.7
Ürün Verimliliği
4.8
Final notu:
4.6

Nereden alabilirim Collagent?

Collagent mağazadan satın alırsanız sizin için en karlı satın alma olacaktır - Pure Natural! Için fiyatımız Collagent dır-dir: 49 €, 50 yaşında% altında, diğer mağazalardan daha! Ürün sayfasında - Collagent aşağıdaki bilgiler sağlanır: tanım, birleştirmek, talimat, incelemeler ve derecelendirme. Uygun teslimat ile sipariş verebilirsiniz Recklinghausen şehrinde!

Teklifi beğendin mi?

Formda bilgilerinizi bırakarak ücretsiz danışmanlık alın. Size bu ürün hakkında her şeyi anlatacağız ve en iyi koşulları sunacağız ve ayrıca tüm güncel promosyonlardan bahsedeceğiz!

içindeki operatörden arama bekleyin 5 dakika

Satın alma nasıl yapılır?
bir ürün seçin
Adınızı ve telefon numaranızı girin
Operatörün aramasını bekleyin
Malları sizin için uygun bir zamanda alın

Ürünlerin orijinalliğini kontrol etme

Ürünün orijinalliğini kontrol etmek için ambalajdaki kodu girin.

  • adventages-icon uygun fiyatlar

    Şu anda web sitemizde tüm müşterilerimize tüm ürünlerde%50 indirim sağlayan benzersiz bir promosyonumuz var.

  • adventages-icon süper teslimat

    Mağazamızda, siparişinizi mümkün olan en kısa sürede alabilmeniz için teslimat sürelerini minimumda tutmaya çalışıyoruz. Yerel depolarımız sayesinde siparişinizi sadece birkaç gün içinde teslim alabilirsiniz.

  • adventages-icon müşteri güveni

    Web sitemizden satın aldığınız ürünlerin kalitesinden emin olabilirsiniz. Tüm kalite standartlarını karşıladığından emin olmak için her ürünü dikkatlice kontrol ediyoruz ve satın alma işlemi sırasında güvenliğinizi sağlamak için elimizden gelenin en iyisini yapıyoruz.

  • adventages-icon Sorular mı kaldı?

    Bilgilendirilmiş bir seçim yapmanıza yardımcı olmak için eksiksiz ve doğru bilgiler sunuyoruz. Ayrıca ekibimiz gerekirse alternatif ürün seçimi konusunda tavsiye vermeye hazırdır. Müşterilerimize satın almalarının her aşamasında mümkün olan en iyi hizmeti ve desteği sağlamaya çalışıyoruz.