/*** Класс проверки и блокировки 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 | FlexOptima | Dimitrovgrad'da - Fiyat: 64 лев
Dimitrovgrad
Takvim: Her zaman
Takvim
Çıkış yapmak: 7/24
7/24
Dimitrovgrad
FlexOptima - ortak çözüm

FlexOptima - ortak çözüm

FlexOptima - ortak çözüm
64 лев
128 лев
Stokta var:
4.6 / 5
Öğe kimliği: bg?bulgaria-TWZ
Tahmini varış zamanı: 1-3 günler
Paket almanın yolları: Kurye veya teslim alma ile

hadi sipariş verelim

  • Birleştirmek
  • Ürün Bilgisi
  • nasıl başvurulur
  • Değerlendirme
  • Yorumlar
  • Diğer şehirlerdeki ürünler
  • Diğer ülkelerdeki ürün
  • diğer dillerde
  • KENEVİR YAĞI
  • PROPOLIS
  • SAFLI KOLAJEN
  • ARNICA ÖZÜ

Kullanım endikasyonları:

Eklemler için

Tahliye formu:

Jel

Son kullanma tarihi:

12 ay

Depolama koşulları:

25C`yi geçmeyen bir sıcaklıkta saklayın. Çocukların erişemeyeceği yerlerde saklayın

Tatil koşulları:

Reçete yok

Bir paketteki miktar:

1 parça

  • Tamamen emilene kadar günde iki kez ovalayarak

Henüz inceleme yok.

İlk yorum yapan siz olun

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

Nereden alabilirim FlexOptima?

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

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.