 |

18.11.2007, 17:45
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 523
С нами:
9769563
Репутация:
160
|
|
Нужен Скрипт для бана ip
//del 
Последний раз редактировалось combatsxx; 20.08.2009 в 11:35..
|
|
|

18.11.2007, 17:54
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Сообщение от combatsxx
Нужен Скрипт (Пхп) для автоматического бана Айпи
Через куки или через mysql
ато уже заипали флудом на сайт отчетами от Ксинча..
Приходит много логов я их удаляю ано потом опять запускают трой и опять идут логи..
Советую лучше банить через .htaccess там всего то строчку добавляешь:
Deny from 192.168.1.1
Или например чтобы забанить всю подсеть, то вот так:
Deny from 192.168
Вот соббстно и всё.
|
|
|

18.11.2007, 18:05
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 523
С нами:
9769563
Репутация:
160
|
|
//del 
Последний раз редактировалось combatsxx; 20.08.2009 в 11:35..
|
|
|

18.11.2007, 18:09
|
|
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
С нами:
9985348
Репутация:
119
|
|
выкладывали не так давно
http://forum.antichat.ru/thread53477.html
|
|
|

18.11.2007, 18:11
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 523
С нами:
9769563
Репутация:
160
|
|
>Антох тот топ читал..
невыходит что-то
|
|
|

18.11.2007, 18:11
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 523
С нами:
9769563
Репутация:
160
|
|
//del 
Последний раз редактировалось combatsxx; 20.08.2009 в 11:35..
|
|
|

19.11.2007, 15:04
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
С нами:
9975266
Репутация:
1916
|
|
Сообщение от 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 
Последний раз редактировалось .:ENOT:.; 21.11.2007 в 14:57..
|
|
|

21.11.2007, 08:01
|
|
Постоянный
Регистрация: 19.10.2007
Сообщений: 523
С нами:
9769563
Репутация:
160
|
|
(непроканало
|
|
|

21.11.2007, 08:33
|
|
Постоянный
Регистрация: 15.03.2006
Сообщений: 600
С нами:
10608806
Репутация:
1203
|
|
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);
?>
|
|
|

21.11.2007, 13:38
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
С нами:
9975266
Репутация:
1916
|
|
Сообщение от combatsxx
(непроканало
Подправил скрипт, потестил, всё работает. Вот тебе и основа, дальше сам доработаешь если нужно 
Последний раз редактировалось .:ENOT:.; 21.11.2007 в 14:59..
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|