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 самая обыкновенная авторизация. Так что этот подлец которого Я забанил ко мне не ходит.
Еще можно было бы ему в куки записывать при входе на страничку которая выдаеться при трех неудачных попытках авторизоваться
————————-
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"); } ?>
сидит за анонимной проскеё и суёт ей вшивые адреса то отключая всю проскю появляется возможность заблокироват большую корпоративную сеть
И это действительно так, то
- Надо просто стереть его сообщение в гостевой
- Забанить его и написать по всем вопросам обращайтесь banned@host.ru и сидеть себе спокойно кому надо напишет
Источник: internet-technologies.ru