/*** Класс проверки и блокировки 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 '
Ordutegia: erlojuaren inguruan
|
Eskaerak onartzea: erlojuaren inguruan
Terraza
Fabrikatzailea:
OOO "Inteksika"
Erabilera-adierazpenak:
Artikulazioetarako
Askatzeko formularioa:
Gela
Iraupena:
3 urte
Biltegiratzeko baldintzak:
Gorde 25 º C-tik gorako tenperaturan. Mantendu haurren eskura
Oporretako baldintzak:
Errezetarik gabe
Bolumena:
50 ml
Paketea:
Hodia
Denda OrganicShop erosteko aholkatzen du - Flexumgel! Lehenik eta behin, tresna honen konposizioa 100% osagai naturalez osatuta dago. Bigarrenik, bere eraginkortasunak zure arazoa azkarrago eta hobeto konpontzeko aukera ematen dizu, analogoetako edozein baino. Hirugarrenik, beti eros dezakezu errentagarri Flexumgel Terrasan gure dendan - OrganicShop. Prezioa: 39 €!
Utzi zure datuak gure espezialista zurekin harremanetan jartzeko. Produktu honi buruzko doako kontsulta bat jasoko duzu, eta sustapen eskaintza paregabeak ere ezagutuko dituzu!
Barruan berriro deituko zaituzte 5-15 minutu
Idatzi DAT kodea produktuaren benetakotasuna egiaztatzeko.
Orain aukera paregabea duzu erosketetan aurrezteko, aukeratzen duzun produktua edozein dela ere. Ez galdu erosketa atseginak prezio lehiakorretan egiteko aukera.
Gure helburua eskaerak bidaltzea azkar eta fidagarria da. Batez besteko entrega-epea 3 egunekoa da gure prozesuaren optimizazioari eta zure herrialdeko biltegien erabilgarritasunari esker.
Milaka erosleren konfiantza dugu egunero, gure zeregin nagusia gure webgunean erositako ondasunen kalitate handia bermatzea baita. Produktu bakoitza arretaz hautatzen dugu bere fidagarritasuna eta beharrezko baldintza guztiak betetzen dituela ziurtatzeko.
Gure webgunearen abantaila nagusietako bat produktu bakoitza erosi aurretik aholkularitza profesionala da. Bezero bakoitza bakarra dela ulertzen dugu, eta bakoitzak bere ezaugarriak eta beharrak dituela. Horregatik, zuretzako produktu egokia aukeratzen lagunduko dizuten espezialisten aholkularitza kualifikatua jasotzeko aukera eskaintzen dugu.