Как блокировать по IP

Блокируем пользователя по IP-адресу
Очень простая, но в тоже время очень доступная для понимания реализация этой задачи.
Её можно использовать фактически в любом скрипте.

За дело
Для начала нам нужно получить список ip-адресов, которым будет закрыт доступ на наш сайт. Еще потребуется
использовать массивы и циклы — вот где нам и пригодится php.

Дальше — больше 🙂

Для получения ip-адреса посетителя можно
использовать суперглобальную переменную

$_SERVER['REMOTE_ADDR'].

На php это реализуется следующим образом:

 $ip = $_SERVER['REMOTE_ADDR'];

А теперь разберемся с
остальными переменными нашего мини-скрипта. Создаем массив ($ban), куда помещаем все забаненые ip:

$ban = array('333.333.333.333',’111.111.111.111’);

Как видите, ip нужно помещать в одинарные кавычки и отделять их друг от друга запятой
(все просто и ясно — за что я и люблю php)
В следующая переменная ($count) будет занесено количество этих самых ip:

$count = count($ban);

Что мы имеем:

1) IP адрес определенного посетителя — переменная $ip;
2) массив запрещенных
IP-адресов — $ban;
3) число элементов этого массива — $count.
Все элементарно просто — берем и сверяем адрес $ip со списком запрещенных — а так как у нас
их может быть несколько, то для этого понадобится обход всего массива забаненых адресов.

Эту работу за нас легко проделает цикл for:

for ($i=0; $i< $count; $i++) { if($ip == $ban[$i])
{ die("Вы забанены!. $ip"); } }

Вот и получается,
что если проверяемый адрес совпадет с одним из наших «нехороших», то мы и дадим знать его обладателю — Вы забанены!. 68.225.34.86.

А вот и весь
скрипт целиком — это для тех, кому лень его собирать по частям из статьи:

$ip = $_SERVER['REMOTE_ADDR']; 

$ban = array('333.333.333.333','68.225.34.86'); 
$count = count($ban); for ($i=0; $i< $count; $i++) { if($ip == $ban[$i])
{ die("Вы забанены! $ip"); } }

Береженого и Бог бережет! Так что пользуемся и радуемся:)

Posted in PHP

One thought on “Как блокировать по IP

Добавить комментарий для Igor Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *