if(getenv("HTTP_CLIENT_IP")) {
$ip =
getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$ip =
getenv("REMOTE_ADDR");
}
ну и проверяй потом, соответствует, или
нет
__________________
Евгений aka Razor, http://eugeny.com
пробовал, работает. Теперь, я еще и записываю в файл
IP
всех кто в гостевой, так что уже не должно быть
проблем .
HTTP_CLIENT_IP - этой переменной сервер пытается определить адрес
usera на прямую исключая пркси...
сорри что так поздно..... но вы в курсе что будет если
"HTTP_CLIENT_IP" передать в качестве GET или POST
перематров?
Во-первых это зависит от порядка EGPCS
Во-вторых в
приведенном примере HTTP_CLIENT_IP берется через getenv() то есть
GET и POST на него не влияют.
И еще по поводу общей темы. У меня был случай когда код
if(getenv("HTTP_CLIENT_IP")) {
$ip =
getenv("HTTP_CLIENT_IP");
}
elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$ip =
getenv("HTTP_X_FORWARDED_FOR");
} else {
$ip = getenv("REMOTE_ADDR");
}
неработал. Проблема была в том что человек сидел за каким-то
нестандартным прокси и
он определял
HTTP_X_FORWARDED_FOR как строку "undefine".
Поскольку
это была именно строка if(getenv("HTTP_X_FORWARDED_FOR"))
возвращало true, ну а дальше все понятно.
Поэтому я еще делал проверку чтобы было соответствие
формату ip DDD.DDD.DDD.DDD
Я на свое м сайте использую простую систему из двух
файлов
1. Ban.php ( прикреплен к header.php в самом
начале, т.е. открывается В Е З Д Е первым.
<?php
$ban=getenv("REMOTE_ADDR");
if ($ban=="ip забаненного ") {
include
"banau.php";/ если твой ip - забанен , то вставлаю файл с
авторизацией.
}
?>
2. banau.php самая обыкновенная авторизация. Так что этот подлец
которого Я забанил ко мне не ходит.
Еще можно было бы ему в куки записывать при входе на страничку
которая выдаеться при трех неудачных попытках авторизоваться
<?
setcookie ("banned", "yes"); ?>
_________________
http://www.alesh.ru
alesh вроде бы всё хорошо
но если человек поматюгался
у него порвалась связь и он заново зашел ему назначился
другой ИП и всё заново
а потом хороший
человек подключился и ему присвоили ИП подлеца что
делать?
Тут ещё требуется протоколировать дату и баннить
спамера на 2-24 не более
Ну тогда нада банить по ип И по кукам.
что-то типа
<?
$ban=getenv("REMOTE_ADDR");
setcookie ("banned", "yes");
setcookie
("ip", "$ban"); ?>
if (@$HTTP_COOKIE_VARS["banned"]
== '' ) { // смотри на здоровье!
...
}
else {
include
"banau.php";
}
?>
Ну и добавить сюда еще и второй цикл для кука $ip
И тогда будет двойная проверка.
А по другому никак. Ну
можно еще надеятся, что все недоброжелатели сидят на
выделенках с прямыми айпишниками
А, ну и еще
прикрепить сюда проверку по ip! если у него он постоянный все таки
И того в итоге получиться......
<?php
$ban=getenv("REMOTE_ADDR");
if ($ban=="127.0.0.1" & $HTTP_COOKIE_VARS["banned"]
=="yes" $) {
include "banau.php";
setcookie ("banned", "yes");
setcookie
("ip", "$ban");
}
?>
сидит за анонимной проскеё и суёт ей вшивые адреса то отключая всю
проскю появляется возможность заблокироват большую
корпоративную сеть
И это действительно так, то
1. Надо просто стереть
его сообщение в гостевой
2. Забанить его и написать по
всем вопросам обращайтесь banned@host.ru
и Сидеть себе
спокойно Кому надо напишет
__________________
http://www.alesh.ru