Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Блокировка по заданному IP адресу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Mr.KreDo
Отправлено: 29 Июня, 2011 - 19:46:20
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Апр. 2011  
Откуда: Старый Оскол, Россия


Помог: 0 раз(а)




Всем Привет, решил попробовать сделать блокировку по указанному IP.

создал таблицу, ip_block , в писал туда ip адреса такого вида 95.71. и 106.88.
то есть будет доступ только для этих адресов, идет проверка реального IP адреса
пример: это ip клиента 95.71.55.66
как сделать так что бы проверялось только определенное количество символов для того что бы сверялось из базы под сеть пользователя.

Как правильно осуществить это ?
 
 Top
Мелкий Супермодератор
Отправлено: 29 Июня, 2011 - 19:53:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Первый придумавшийся вариант: переводите к int нижний адрес подсети, верхний адрес, нужный адрес, смотрите, попадает ли в диапазон между.


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Июня, 2011 - 19:54:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
Mr.KreDo
Отправлено: 29 Июня, 2011 - 20:16:39
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Апр. 2011  
Откуда: Старый Оскол, Россия


Помог: 0 раз(а)




DeepVarvar пишет:
PHP:
скопировать код в буфер обмена

if (stristr($ip,"95.71.")) echo "Ok";


а как сделать если 2 записи находятся в одной стоке
тип строки Text
 
 Top
grefon
Отправлено: 29 Июня, 2011 - 21:03:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Разбейте эксплойдом по \n на массив и проверьте в цикле.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
EuGen Администратор
Отправлено: 29 Июня, 2011 - 21:06:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Можно использовать класс http://forum.php.su/topic.php?fo...35&topic=750 - он умеет определять, является ли адрес частью подсети (это на случай, если у Вас используется CIDR-адресация и сравнение по substr Вам не подходит)
Если же нужно через SQL - то Вам поможет
http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]nction_inet-aton


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB