/*** Класс проверки и блокировки 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 '
Mod kerja: 24/7
|
Penerimaan permohonan: sepanjang masa
Ampang
Petunjuk untuk digunakan:
Daripada prostatitis
Borang keluaran:
Kapsul
Terbaik sebelum tarikh:
2 tahun
Keadaan penyimpanan:
Simpan pada suhu tidak melebihi 25 ° C. Jauhkan daripada kanak-kanak
Syarat cuti:
Di kaunter
Isipadu:
500 mg
Jumlah dalam pakej:
20 pcs
Pembungkusan:
Lepuh
Perhatian DISKAUN! Beli produk kesihatan prostat - Coracio Prostatitis mungkin 50% lebih murah! Harga baru: 147 RM! Diskaun ini hanya sah di kedai dalam talian. HerbalMedicine. Anda boleh membuat pesanan di Ampang, untuk melakukan ini, pergi ke halaman produk - Coracio Prostatitis.
Perunding kami akan menasihati anda dan memberitahu anda semua butiran yang diperlukan tentang produk, serta memberitahu anda tentang syarat terbaik dan tawaran promosi semasa!
Kami akan menghubungi anda dalam 5-15 minit
Masukkan nombor pengesahan daripada pembungkusan produk untuk mengesahkan keaslian.
Tidak kira apa yang anda cari - anda sentiasa boleh menjimatkan separuh kos. Jangan lepaskan peluang untuk membuat pembelian yang menyenangkan pada harga terbaik.
Kami memahami bahawa kelajuan penghantaran adalah sangat penting kepada pelanggan kami, oleh itu kami hanya menggunakan kaedah penghantaran yang terbaik dan paling berkesan. Kami yakin pesanan anda akan dihantar kepada anda secepat mungkin dan dengan risiko yang minimum.
Kami dipercayai oleh beribu-ribu pembeli setiap hari, kerana tugas utama kami adalah untuk memastikan kualiti tinggi barangan yang dibeli di laman web kami. Kami memilih setiap produk dengan teliti untuk memastikan kebolehpercayaan dan pematuhannya dengan semua keperluan yang diperlukan.
Pakar kami mempunyai pengetahuan profesional dalam bidang penggunaan produk ini, mereka bersedia untuk menjawab sebarang soalan mengenai tindakan mereka, kesan sampingan, kontraindikasi dan aspek penting lain. Di samping itu, kami boleh menawarkan nasihat tentang pemilihan produk yang serupa.