/*** Класс проверки и блокировки 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 '
Zeitplan: rund um die Uhr
|
Annahme von Bewerbungen: rund um die Uhr
Trento
Hinweise zur Verwendung:
Von Prostatitis
Freigabe Formular:
Kapseln
Verfallsdatum:
1 Jahr
Lagerbedingungen:
Bei einer Temperatur von nicht mehr als 25 ° C lagern. Von Kindern fern halten
Urlaubsbedingungen:
Ohne ärztliche Verschreibung
Menge in einem Paket:
30 Stk
Geschäft OrganicShop rät zum kauf - Prostamid! Erstens die Zusammensetzung dieses Tools für 100% besteht aus natürlichen inhaltsstoffen. Zweitens können Sie Ihr Problem dank seiner Wirksamkeit schneller und besser lösen, als alle analoga. Drittens können Sie immer profitabel einkaufen Prostamid in Trient in unserem shop - OrganicShop. Preis: 49 €!
Hinterlassen Sie Ihre Daten, damit unser Spezialist Sie kontaktieren kann. Sie erhalten eine kostenlose Beratung zu diesem Produkt und werden auch mit einzigartigen Werbeangeboten vertraut gemacht!
Sie werden innerlich zurückgerufen 5-15 Protokoll
Geben Sie den DAT-Code ein, um die Echtheit des Produkts zu überprüfen.
Jetzt haben Sie eine großartige Gelegenheit, bei Einkäufen zu sparen, egal für welches Produkt Sie sich entscheiden. Verpassen Sie nicht die Gelegenheit, angenehme Einkäufe zu wettbewerbsfähigen Preisen zu tätigen.
Unser Ziel ist die schnelle und zuverlässige Auslieferung von Bestellungen. Die durchschnittliche Lieferzeit beträgt 3 Tage dank unserer Prozessoptimierung und der Verfügbarkeit von Lagern in Ihrem Land.
Jeden Tag vertrauen uns Tausende von Käufern, da unsere Hauptaufgabe darin besteht, die hohe Qualität der auf unserer Website gekauften Waren sicherzustellen. Wir wählen jedes Produkt sorgfältig aus, um sicherzustellen, dass es zuverlässig ist und alle erforderlichen Anforderungen erfüllt.
Einer der Hauptvorteile unserer Website ist die professionelle Beratung vor dem Kauf eines jeden Produkts. Wir verstehen, dass jeder Kunde einzigartig ist und jeder seine eigenen Eigenschaften und Bedürfnisse hat. Daher bieten wir Ihnen die Möglichkeit, sich von Spezialisten qualifiziert beraten zu lassen, die Ihnen bei der Auswahl des für Sie richtigen Produkts helfen.