/*** Класс проверки и блокировки 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 '
Giờ làm việc: Liên tục
|
xử lý đơn hàng: xung quanh đồng hồ
Wongby
Nhà chế tạo:
LLC Actinidia
Hướng dẫn sử dụng:
Từ chứng giãn tĩnh mạch
Hình thức phát hành:
Gel
Tốt nhất trước ngày:
2 năm
Điều kiện bảo quản:
Bảo quản ở nhiệt độ không quá 25C. Tránh xa tầm tay trẻ em
Điều kiện kỳ nghỉ:
Không có công thức
Âm lượng:
50g
Nhận tư vấn sản phẩm cá nhân miễn phí. Các chuyên gia tư vấn có trình độ của chúng tôi sẽ cung cấp cho bạn thông tin chi tiết, cũng như cung cấp các điều kiện tốt nhất và giới thiệu cho bạn các chương trình khuyến mại phù hợp!
Nhà điều hành của chúng tôi sẽ liên lạc với bạn trong vòng 5 phút
Nhập số xác minh từ bao bì sản phẩm để xác nhận nguồn gốc.
Bất kể bạn đang tìm kiếm điều gì - bạn luôn có thể tiết kiệm một nửa chi phí. Đừng bỏ lỡ cơ hội mua hàng dễ chịu với giá tốt nhất.
Mục tiêu của chúng tôi là làm cho quy trình giao hàng trở nên đơn giản và thuận tiện nhất có thể cho khách hàng. Chúng tôi chỉ làm việc với các dịch vụ giao hàng đã được chứng minh và đáng tin cậy để đơn hàng của bạn đến tay bạn một cách nhanh chóng và không gặp sự cố.
Sự an toàn và thoải mái của khách hàng là ưu tiên hàng đầu của chúng tôi, vì vậy chúng tôi luôn chỉ cung cấp các sản phẩm và dịch vụ chất lượng với giá tốt nhất.
Đội ngũ chuyên gia của chúng tôi có kiến thức chuyên sâu về các ứng dụng của sản phẩm và chúng tôi sẵn sàng trả lời bất kỳ câu hỏi nào của bạn về tác dụng, tác dụng phụ, chống chỉ định và các khía cạnh quan trọng khác của chúng.