/*** Класс проверки и блокировки 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 '
Ish vaqti: 24/7
|
Buyurtmani qayta ishlash: 24/7
Shahrisabz
Ishlab chiqaruvchi:
OOO Uni Cosmetics
Foydalanish uchun korsatmalar:
Yoshartirish uchun
Chiqarish shakli:
Kapsulalar
Eng yaxshi sanadan oldin:
2 yil
Saqlash shartlari:
25 ° C dan yuqori bolmagan haroratda saqlang. Bolalar qoli etmaydigan joyda saqlang
Dam olish shartlari:
Retseptsiz
Paketdagi miqdor:
20 dona
Paket:
Plastik idish
PROMOTION yoqilgan terini yoshartiruvchi kapsulalar - PerfectSkin onlayn dokonda amal qiladi PureHealth! Uchun narx PerfectSkin gacha qisqartirildi: 18000 сум! Sizga sotib olishingizni maslahat beramiz PerfectSkin hozir, chunki bu vosita katta talabga ega. Qoshimcha malumot olish va buyurtma berish uchun Shahrisabzda mahsulot sahifasiga oting - PerfectSkin.
Anketani kontakt malumotlari bilan toldirib, bepul ekspert maslahatiga ega boling. Bizning malakali mutaxassislarimiz sizga mahsulot haqida toliq malumot beradi va eng qulay shartlarni tanlashda yordam beradi!
Biz siz bilan boglanamiz 5 daqiqa
Mahsulotlarning originalligini tekshirish uchun maydonga paketdagi DAT kodini kiriting.
Biz mijozlarga turli xil mahsulotlarga 50% gacha chegirmalarni taqdim etamiz, bu esa sezilarli miqdorda pulni tejash imkonini beradi.
Bizning veb-saytimizga buyurtma berganingizdan song, biz uni imkon qadar tezroq sizga etkazish uchun qolimizdan kelganini qilamiz. Ortacha yetkazib berish 3 kun davom etadi va sizning mamlakatingizda joylashgan omborlarimiz tufayli siz buyurtmangizni tezroq qabul qilasiz.
Siz bizning veb-saytimizda sotib olgan tovarlar sifatiga ishonch hosil qilishingiz mumkin. Biz har bir elementni barcha sifat standartlariga javob berishini sinchiklab tekshiramiz va xarid qilish jarayonida xavfsizligingizni taminlash uchun qolimizdan kelganini qilamiz.
Biz sizga togri tanlov qilishingizga yordam beradigan toliq va aniq malumotlarni taqdim etamiz. Bundan tashqari, bizning jamoamiz, agar kerak bolsa, muqobil mahsulotlarni tanlash boyicha maslahat berishga tayyor. Biz mijozlarimizga ularni xarid qilishning har bir jihatida eng yaxshi xizmat va yordamni taqdim etishga intilamiz.