| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > бан по ip |
| Автор: Zhenek 8.12.2009, 03:18 | ||
Есть код :
Подключение к базе вызывается раньше чем этот фаил инклудом. Он должен блокировать Ип как просто так так и по маске 127.x.0.1 Но он всегда говорит что ИП в бане( что в нем не так?? Структура базы данных id ip type time comment 1 127.0.0.1 0 блабла 2 145.5.0.1 0 блабла |
| Автор: nerezus 8.12.2009, 03:48 |
| Ну код и жесть. Его можно записать ровно в 2 строки, причем вторая будет die(). 1) Запрос делай на селект НУЖНОГО ip. 2) Зачем стравнивать посегментно? Это неверно, сравнивай целиком. |
| Автор: MoLeX 8.12.2009, 06:49 | ||
как то так
Добавлено через 49 секунд ip2long() посмотри на эту фун-цию |
| Автор: Zhenek 8.12.2009, 07:34 |
| Вы видимо не читали что я писал.. Мне нужно заносить в базу не только IP но еще и маски. прмиер : 127.x.0.0 тоесть вместо x может быть цифры от 0 до 255 |
| Автор: Simpliest 8.12.2009, 08:21 |
маска = 127.%.%.123 ip LIKE маска Добавлено через 1 минуту и 38 секунд регуляркой впрочем делается почти так же |
| Автор: Ипатьев 8.12.2009, 10:45 |
| Маска какая-то ОЧЕНЬ странная |
| Автор: _zorn_ 8.12.2009, 11:43 |
| Код конечно жесть, но ошибку все таки видно. Нет начальной инициализации $Allowed = true; |
| Автор: Nigel 8.12.2009, 13:26 | ||||
Можете попробовать такой вариант
Если есть возвращаемое значение, значит запрещаем доступ. Можете также использовать поиск по диапазону. Для этого храните айпи адреса в виде чисел ip_from, ip_to. При сохранении в базу x заменяете на числа 0 и 255 соответсвенно. Запрос будет вида
Если в базе будет храниться несколько тысяч строк, то лучше использовать второй вариант, так как в этом случае поиск будет идти по ключу. |
| Автор: nerezus 8.12.2009, 16:01 | ||
|
| Автор: Pitlord 8.12.2009, 18:23 |
| Google: http://www.google.ru/#hl=ru&newwindow=1&q=CIDR&lr=&aq=&oq=CIDR&fp=5f96a978f2abe2da IP — число и про LIKE/регулярки надо забыть. |