| .:EnoT:. |
19.11.2007 15:04 |
Цитата:
Сообщение от combatsxx
Нужен Скрипт (Пхп) для автоматического бана Айпи
Через куки или через mysql
|
Не совсем понял что значит для автоматического бана.
Если ты имеешь ввиду что ты вносишь ip в блэк и соответственно юзера не пускает на страницу, то можно это осуществить с Mysql.
Я бы сделал примерно так:
Создал бы таблицу в БД (например ipban) с полем ip
PHP код:
CREATE TABLE `ipban` (
`id` int NOT NULL auto_increment,
`ip` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Заносить ip-шники примерно так:
ban.php
PHP код:
<?php
//Получаем IP
if(getenv('HTTP_X_FORWARDED_FOR'))
{$ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif(getenv('REMOTE_ADDR'))
{$ip = getenv('REMOTE_ADDR');}
//Соединяемся с БД
$host = "localhost";
$user = "";
$pass = "";
$db = "";
$connect = @mysql_connect("$host", "$user","$pass");
@mysql_select_db("$db", $connect);
//Выводим форму
if($_POST['ips'] == null)
{echo"
<form action method='post'>
<input type='name' name='ips'>
<input type='submit' value='Забанить'>
</form>";
}
else{
$ips = htmlspecialchars($_POST['ips']);
//Делаем запрос на добавлние IP в блэк
$query = "INSERT INTO `ipban` VALUES(NULL, '$ips')";
$result = @mysql_query($query);
if(!$result) {echo"Ошибка!";}
else{echo"IP $ips забанен!";}
}
?>
Файл проверки ip на наличие бана
chek.php
PHP код:
<?php
//Получаем IP
if(getenv('HTTP_X_FORWARDED_FOR'))
{$ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif(getenv('REMOTE_ADDR'))
{$ip = getenv('REMOTE_ADDR');}
//Соединяемся с БД
$host = "localhost";
$user = "";
$pass = "";
$db = "";
$connect = @mysql_connect("$host", "$user","$pass");
@mysql_select_db("$db", $connect);
//Сравниваем с ip-шниками в БД
$query = "SELECT * FROM `ipban` WHERE `ip` = '$ip'";
$result = @mysql_query($query);
if(@mysql_num_rows($result) > 0 )
{echo"Вы забанены!";}
else{echo"Вы не забанены!";}
?>
Короче бан по такому принципу мона сделать. За ошибки и извращенство в коде просьба не пинать, тока учу php :)
|