PDA

Просмотр полной версии : php скрипт бана


mixdw
16.06.2009, 19:38
вот допустем у меня воляется файл пхп бана по ip в дирректории /video с названием ban.php и когда пользователь с каким-то ip переходит на ссылку /video/ban.php то его ip автоматически банится на дирректорию /video

Такой скрипт возможен?

diznt
16.06.2009, 19:50
что мешает инклудить ban.php в файл index.php и т.п. которые входят в директорию video ? (если верно я тебя понимаю)
То есть...
Инклудим ban.php, дальше он проверяет айпи в бане... в случае если айпи в бане найден то выдает на страницу указанный текст

Хотя можно как то с помощью глобальных переменных (так будет проще)(но я еще их не изучал)

BrainDeaD
16.06.2009, 19:52
да. пример:

<?php
$deny = array("111.111.111.111", "222.222.222.222", "333.333.333.333");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
header("location: http://www.yoursite.com/reject.html");
exit();
} ?>

mixdw
16.06.2009, 20:12
мне нужен сам скрипт)))

mixdw
16.06.2009, 20:14
да. пример:

<?php
$deny = array("111.111.111.111", "222.222.222.222", "333.333.333.333");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
header("location: http://www.yoursite.com/reject.html");
exit();
} ?>
Если будет ссылка на этот скрипт,то пользователь перейдя по ссылке http://www.yoursite.com/ban.php будет забанен на http://www.yoursite.com ?

BrainDeaD
16.06.2009, 20:16
нет

mixdw
16.06.2009, 20:17
Тогда для чего этот скрипт?

BrainDeaD
16.06.2009, 20:23
чтобы не пускать на определённую страницу. если их несколько, то можно вставить скрипт и в другие файлы, а ip зачитывать в переменную из базы данных, например. я в php не асс, может меня поправят.

diznt
16.06.2009, 20:27
Тогда для чего этот скрипт?

ban.php

<?php
$deny = array("111.111.111.111", "222.222.222.222", "333.333.333.333");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
$i = 1; //Присваеваем 1 если юзер забанен
} ?>


index.php и другие скрипты (этот ниже код нужно вставлять в те скрипты куда нужно не пускать юзера если он забанен)


<?php
include("ban.php");
if ($i == 1){
echo "Вы забанены!";
exit();
}
?>


Вроде как то так...
Сам не тестил но должно по идее работать (можно покороче вроде все это сделать но я в этом не силен)

mixdw
16.06.2009, 20:41
мне нужно что бы юзер если перешёл по ссылке http://мой сайт/video/ban.php полность банился на всю деррикторию http://мой сайт/video по ip.

diznt
16.06.2009, 20:44
мне нужно что бы юзер если перешёл по ссылке http://мой сайт/video/ban.php полность банился на всю деррикторию http://мой сайт/video по ip.
Кароче .htaccess тебе в помощь...
fopen и fwrite тебе должны помочь по идее

mixdw
16.06.2009, 22:34
тоесть саморучно вставлять?
Не не вариант за каждым следить.
но всё равно всем спасибо хоть за дискусию.

erihtoney
16.06.2009, 22:45
<?php
$file="ban.list"; // файл
fclose(fopen($file,"a+b")); // если файл есть ничего не произойдет, если же нет-новый файл
$f=fopen($file,"r+t"); // открытие
flock($f,LOCK_EX); // блокировка
$filer=file_get_contents($file);
$ip_array=explode("\n",$filer);
$ip=$_SERVER[REMOTE_ADDR];
$search=array_search($ip,$ip_array,true);
if($search){
echo "You are baned";
}
else{
$write="$ip\n";
fwrite($f,$write); // запись
}

fclose($f); // закрытие

?>
И инклудите во все файлы в директории /video

mixdw
16.06.2009, 23:28
Хм,а как по этому скрипту будут банится ip?
На обум??

diznt
16.06.2009, 23:46
Хм,а как по этому скрипту будут банится ip?
На обум??
http://www.google.ru/search?client=opera&rls=en&q=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B+php&sourceid=opera&ie=utf-8&oe=utf-8

Deathdreams
17.06.2009, 01:37
$write = '<center><b>you are banned</b></center>'; //что вывести когда будет забанен
$file = '.htaccess'; //будем через хтакес банить
fclose(fopen($file,"a+b")); //создаст если что
$ban = array();
$ban = file($file);
$ban = explode("\r\n",$ban);
if (in_array($_SERVER['REMOTE_ADDR'], $ban)) {
die($write);
}else{
$what = "deny from ".$_SERVER['REMOTE_ADDR'];
$fp_access = fopen($file,"r+t");
fwrite($fp_access, $what."\r\n");
fclose($fp_access);
die($write);
}


как пример,банить через хтакес