Понедельник, 15.06.2026, 10:08
Приветствую Вас Гость | RSS
Поиск по каталогу
Главная страница | Каталог статей | Регистрация | Вход

Информационные технологии
Форма входа
Меню сайта

Категории каталога
php [246]
perl [1]
perl
ASP [1]
AJAX [0]

Друзья сайта

Наш опрос
Оцените мой сайт
Всего ответов: 69

Начало » Статьи » Web программирование » php

Как можно проверить какой IP, и запретить доступ к странице, или переслать на другую?
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");

}

?>


сидит за анонимной проскеё и суёт ей вшивые адреса то отключая всю проскю появляется возможность заблокироват большую корпоративную сеть



И это действительно так, то



  1. Надо просто стереть его сообщение в гостевой
  2. Забанить его и написать по всем вопросам обращайтесь banned@host.ru и сидеть себе спокойно кому надо напишет


-------------------------

http://www.alesh.ru
Категория: php | Добавил: freeone (09.05.2007) | Автор: no data
Просмотров: 711 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright Информационные технологии © 2006