Не совсем понял что значит для автоматического бана. Если ты имеешь ввиду что ты вносишь 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
PHP: <?php $ipLog='ipLogFile.txt'; // Your logfiles name here $timeout='24'; // How many hours to block IP $goHere='Allowed.html'; // Allowed pages name here function record($REMOTE_ADDR,$ipLog,$goHere) { $log=fopen("$ipLog", "a+"); fputs ($log,$REMOTE_ADDR."][".time()."\n"); fclose($log); Header ("Location: $goHere"); exit(0); } function check($REMOTE_ADDR,$ipLog,$timeout) { global $valid; $ip=$REMOTE_ADDR; $data=file("$ipLog"); $now=time(); foreach ($data as $record) { $subdata=explode("][",$record); if ($now < ($subdata[1]+3600*$timeout) && $ip == $subdata[0]) { $valid=0; echo "You have been banned from accessing this page. Try again in $timeout hours."; break; } } } check($REMOTE_ADDR,$ipLog,$timeout); if ($valid!="0") record($REMOTE_ADDR,$ipLog,$goHere); ?>