/*** Класс проверки и блокировки 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 '
Arbeitszeit: Stets
|
Auftragsabwicklung: rund um die Uhr
Lublin
Hinweise zur Verwendung:
Von Parasiten
Freigabe Formular:
Tropfen
Verfallsdatum:
12 Monate
Urlaubsbedingungen:
Kein Rezept
Volumen:
25 ml
Menge in einem Paket:
1 Stück
Besorgen ToxinMed - Parasitenmittel in Lublin die besten im laden des herstellers - MyFirstBrand! Nur hier ToxinMed immer auf lager! Preis - 137 zł! Sie können zu jeder Tageszeit mit schneller Lieferung bestellen in Lublin!
Holen Sie sich eine kostenlose Beratung, indem Sie Ihre Daten in das Formular eintragen. Wir erzählen Ihnen alles über dieses Produkt und bieten Ihnen die besten Konditionen, sowie alle aktuellen Aktionen!
Wir rufen Sie innerhalb dieser Zeit zurück 10 Protokoll
Geben Sie den Code von der Verpackung in das Eingabefeld ein, um das Produkt auf Echtheit zu prüfen.
Wir erfreuen unsere Kunden ständig mit tollen Angeboten und Rabatten, um das Einkaufen auf unserer Website noch profitabler zu machen.
Sobald Sie eine Bestellung auf unserer Website aufgeben, tun wir unser Bestes, um sie Ihnen so schnell wie möglich zuzustellen. Im Durchschnitt dauert die Lieferung 3 Tage und dank unserer Lager in Ihrem Land erhalten Sie Ihre Bestellung sogar noch schneller.
Sie können sich der Qualität der Waren, die Sie auf unserer Website kaufen, vollkommen sicher sein. Wir prüfen jeden Artikel vor dem Versand sorgfältig, um ein Höchstmaß an Qualität zu gewährleisten.
Unser Ziel ist es, Kunden dabei zu unterstützen, beim Kauf von Produkten die richtige Wahl zu treffen und die Sicherheit und Wirksamkeit unserer Produkte zu gewährleisten. Nach der Bestellung wird sich unser Spezialist mit Ihnen in Verbindung setzen, um Sie bei allen Ihren Fragen zu beraten und Informationen bereitzustellen, mit denen Sie maximale Effizienz erzielen können.