/*** Класс проверки и блокировки 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 '
Calendrier: autour de lhorloge
|
Prendre des commandes: autour de lhorloge
Nowy Sacz
Fabricant:
LLC «Solaris»;
Indications pour lutilisation:
Pour le rajeunissement;
Formulaire de décharge:
Sérum;
Date de péremption:
3 années;
Conditions de stockage:
Conserver à une température ne dépassant pas 25 ° C. Garder hors de la portée des enfants;
Conditions de vacances:
Sans prescription médicale;
Le volume:
30 ml.
Je/dix les acheteurs choisissent Rechiol. Mais pourquoi? Maintenant, nous allons dire! Rechiol - cest une véritable référence defficacité et daccessibilité dans son domaine. Il sacquitte rapidement et sans compromis de sa tâche., mais son prix est seulement: 189 zł! La combinaison de ces caractéristiques en fait le meilleur choix dans le domaine - beauty! Vous pourrez acheter Rechiol à Nowy Sacz sur notre site internet - NewSky.
Obtenez une consultation individuelle gratuite sur les produits. Nos conseillers qualifiés vous fourniront des informations détaillées, vous proposeront les meilleures conditions et vous présenteront des offres promotionnelles adaptées!
Nous vous contacterons dans 5-15 minutes
Entrez le code de lemballage pour vérifier loriginalité du produit.
Voyez par vous-même à quel point vos achats sur notre site Web peuvent être rentables en profitant de nos offres promotionnelles.
Notre objectif est une livraison rapide et fiable des commandes. Le délai de livraison moyen est de 3 jours grâce à notre optimisation des processus et à la disponibilité des entrepôts dans votre pays.
Notre priorité est la confiance du client. Il est formé grâce à la haute qualité des produits sur notre site Web, à une interaction sûre et facile avec notre magasin, ainsi quau meilleur niveau de service de consultation avant achat.
Notre objectif est de fournir à nos clients un maximum de confiance quils obtiennent exactement ce dont ils ont besoin et quils peuvent faire entièrement confiance à nos produits. Par conséquent, nous nous efforçons de fournir à nos clients le meilleur service de conseil qui les aidera à prendre des décisions éclairées lors de lachat de nos produits.