Преглед на урок

BAN по IP адрес

BAN по IP адрес




Здравейте, в този урок ще ви разясня как да си направите БАН системка като използвате прости (флат,текстови) файлове. Като за начало ще разгледаме структурата на файлът, който ще използваме като база данни banned_ips.txt:
Код
213.xxx.x.xx
212.xxx.x.xx
211.xxx.x.xx
т.е. всеки отделен IP адрес ще се записва на нов ред!

Така нека започнем с главното нещо или как да направим проверка дали IP-то е в базата данни (banned.php):
Код
<?php
$user_ip = getenv("REMOTE_ADDR"); // Вземаме IP-то на потребителя
$banned_file = "banned_ips.txt"; // Пътят и името на файла който ще използвате за базата данни
if(!file_exists($banned_file))
{
touch($banned_file); // Създаваме файла ако не съществува
die("Моля презаредете страницата (натиснете Refresh)!"); // За да не ни се появяват грешки ако файлът не съществува :)
}
$banned_size = filesize($banned_file); // Взимаме размера на файла (ще ни трябва по-надолу)
if($banned_size < 1)
{
$banned_size = 1; // Поставяме размер на файла по-голям от нула (само при положение, че той е по-малък от едно!)
}
$banned_fh = fopen($banned_ips, "rb"); // Отваряме файла
$banned = fread($banned_fh, $banned_size); // Четем файла
$banned_ips = explode("\n",$banned);
foreach($banned_ips as $banned_ip)
{
if($user_ip == $banned_ip)
{
die("Нямате достъп до тази страница!"); // Съобщението ако потребителят е баннат
}
}

(съвет: сложете забрана за достъп до banned_ips.txt с .htaccess)

Има ли нещо ясно до тук? Няма? Ами питайте!

Ако урокът ви допада, споделете го в Twitter и Facebook или го запазете в Delicious.




Урокът е добавен от: LinuxBG

Коментари

tihomir91

може без foreach

$banned_fh = fopen($banned_ips, "rb"); // Отваряме файла
$banned = fread($banned_fh, $banned_size); // Четем файла

if (strstr($banned,$user_ip ))
die("Нямате достъп до тази страница!");

Добави коментар

Трябва да сте регистиран потребител за може да оставяте коментари! Направете своята безплатна регистрация още сега.