/*** Класс проверки и блокировки 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 '
Programa: 24/7
|
Procesarea comenzilor: 24/7
Ospitalitate
Indicatii de utilizare:
Pierdere în greutate
Formular de eliberare:
Plic
Cel mai bun înainte de data:
2 ani
Conditii de depozitare:
A se păstra la o temperatură care să nu depășească 25 ° C. A nu se lasa la indemana copiilor
Conditii de vacanta:
Peste masa
Suma într-un pachet:
7 buc
Ambalare:
Ambalare cu plicuri
E simplu! Vitasimil - este format din 100% din componentele naturii noastre, care asigură o asemenea eficiență. Dar asta nu este tot! Această compoziție a fost aleasă de producător nu întâmplător., la urma urmei, este, de asemenea, foarte important ca produsul să fie atent și delicat la utilizare. Ca urmare, avem cel mai bun reprezentant din domeniu - slimming! Cumpără Vitasimil în Hospitalet magazinul nostru te va ajuta - LightSale.
Obțineți o consultație gratuită a unui expert completând formularul cu datele dvs. de contact. Specialiștii noștri calificați vă vor oferi informații complete despre produs și vă vor ajuta să alegeți cele mai favorabile condiții!
Vă vom contacta în termen 1-5 minute
Introduceti codul DAT din pachet in camp pentru a verifica originalitatea produselor.
În prezent avem o promoție unică pe site-ul nostru care permite tuturor clienților noștri să primească o reducere de 50% la toate produsele.
Imediat ce plasați comanda, începem să lucrăm la livrarea acesteia, astfel încât să o aveți cât mai curând posibil. Expediem din depozitul cel mai apropiat de tine, ceea ce reduce timpul de livrare si il face mai rapid si mai eficient.
Siguranța clienților noștri este prioritatea noastră principală și ne asigurăm că toate produsele noastre îndeplinesc cele mai înalte standarde de calitate și siguranță.
Suntem mândri că site-ul nostru oferă sfaturi profesionale înainte de a cumpăra fiecare articol. Prin urmare, oferim posibilitatea de a primi informații calificate de la specialiștii noștri care vă vor ajuta să alegeți produsul potrivit și să vă răspundă la toate întrebările legate de utilizarea acestuia.