Forum Webscript.Ru

Программирование => PHP => Тема начата: -DieseLok- от 06 Сентября 2005, 16:29:49

Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 06 Сентября 2005, 16:29:49
Добрый день!

Подскажите пожалуйста как можно на пхп организовать сравнение...

Тоесть есть два списка чёрный и белый

когда человек регистрируеться чтобы проверялось его принадлежность к тому или иному списку.

Опишите пожалуйста систему работы такого скрипта.

Зарание спасибо!
Название: Чёрный и Белый список IP
Отправлено: unclebob от 06 Сентября 2005, 17:54:45
Цитировать
-DieseLok-:
Подскажите пожалуйста как можно на пхп организовать сравнение...


Например:

if ($a == $b){ ... }


непонял в чем вопрос
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 06 Сентября 2005, 21:31:58
Это пронятно но проблема вот в чём:
1. там больше 100 адресов чтоже все перечислять
2. нужно учесть маску подсети...
Название: Чёрный и Белый список IP
Отправлено: Меняздесьдавнонет от 06 Сентября 2005, 22:09:23
Цитировать
-DieseLok-:
1. там больше 100 адресов чтоже все перечислять

можно записать в файл
Цитировать
-DieseLok-:
2. нужно учесть маску подсети...

учитывай. кто тебе не даёт
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 06 Сентября 2005, 22:20:16
Пример можно?
Название: Чёрный и Белый список IP
Отправлено: unclebob от 07 Сентября 2005, 01:48:27
Это что из разряда "Летели 2 крокодила: 1 зеленый, другой в африку..."?

Еще раз: постановка задачи!!!

в каком виде имеем адреса?
  81.22.85.89
  BIN 01010001000101100101010101011001
  DEC 1360418137
  (а мало-ли чего в голову взбредет)

где храним?
  FILE || DB
  (или может в голове ;))

если в списке только ip-шники, то зачем маска?

если в списке подсети, то как хранятся?
  81.22.85.11/30
  81.22.85.11-81.22.85.14
  or anything else{}
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 07 Сентября 2005, 02:54:31
Спасибо что ответили!

храним список в файле, в виде 81.22.85.11/30

задача:

заходит чел регистриуеться, пхп определяет его ай-пи и решает пускать человека куда-то дальше или не пускать...
Название: Чёрный и Белый список IP
Отправлено: for_i_0 от 07 Сентября 2005, 07:35:04
Цитировать
-DieseLok-:
заходит чел регистриуеться, пхп определяет его ай-пи и решает пускать человека куда-то дальше или не пускать...


ИМХО не нужна тебе эта канитель с IP адрессами раз уж пользователь регистрируется используй сесии. Это уже не раз обсуждалось в форумах. Нет 100% гарантии что PHP определит точный IP адресс пользователя.
Название: Чёрный и Белый список IP
Отправлено: for_i_0 от 07 Сентября 2005, 07:43:01
[OFF]
Добавлю только то, что разумнее будет уже имеющихся пользователей разбить на определенные группы.
[/OFF]
Название: Чёрный и Белый список IP
Отправлено: Меняздесьдавнонет от 07 Сентября 2005, 08:48:09
-DieseLok-
ты умеешь работать с файлами?
а с массивами?
судя по твоему стажу регистрации на форуме, все эти вещи ты должен знать наизусть.
поэтому некоторое удивление вызывает, если честно, такой тривиальный вопрос
Название: Чёрный и Белый список IP
Отправлено: Меняздесьдавнонет от 07 Сентября 2005, 08:48:39
мене кажется, что он из разряда, когда человек знает все элементы решения, но ему лень сесть и немного подумать
Название: Чёрный и Белый список IP
Отправлено: unclebob от 07 Сентября 2005, 10:29:33
Цитировать
-DieseLok-:
заходит чел регистриуеться, пхп определяет его ай-пи и решает пускать человека куда-то дальше или не пускать...


Кстати с этого места по подробнее.

Что-то смысл не понятен: чел регистр-ся, а потом скрипт проверяет стоило ему регистрироваться или нет.

Хотя, мне все равно кто как извращается.

Если надо сравнивать, ip, то навскидку могу предложить перевести ip в десятичное число:

str 81.22.88.14 = int 81*2^24+22*2^16+88*2^8+14

тоже самое  с каждой подсетью в списке (для ускорения лучше все подсети хранить сразу в виде чисел)

теперь подсети (допустим 81.22.88.14/30):

2^(32-30) - буквальное число ip в подсети, т.е. от 81.22.88.14 до 81.22.88.17

итак, если ADDR between ip1,ip2, то делай выводы...
Название: Чёрный и Белый список IP
Отправлено: Меняздесьдавнонет от 07 Сентября 2005, 10:48:39
я думаю, ему будет проще строковыми функциями
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 07 Сентября 2005, 12:21:52
спасибо большое, за столько ответов :) буду думать, мне просто не совсем система понятна была с масками ай-пи адресов
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 07 Сентября 2005, 16:10:16
Цитировать
RomikChef:
я думаю, ему будет проще строковыми функциями


Это как?
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 09 Сентября 2005, 01:22:45
Что то я вообще не могу понять...

Люди добрые ну помогите пожалуйста, сежу уже третий день, перелапатил весь ман но немогу найти нужного примера (на примере легче соображаеться)

скажем я выяснил что у чела адрес

62.149.13.80 и получил в своё распоряжение список адресов вида:

62.149.0.0/19
62.149.9.0/24

мне нужно проверить входит ли адрес человека в этот диапазон

Если да то 1
Если нет то 2

Помогите плз...

З.ы. я просто хАчу зделать такую вЭщь... у меня траффик только украинский анлимитный поэтому хачу зделать для тех кто в диапазоне определённых ай-пи могли качать с сайта что-то, а те кто вне диапазона могли просто читать и нфу разную
Название: Чёрный и Белый список IP
Отправлено: AlieN от 10 Сентября 2005, 07:28:28
Не копти тогда людям мозг!

.htaccess для кого придумали?
Название: Чёрный и Белый список IP
Отправлено: -DieseLok- от 10 Сентября 2005, 13:26:56
я не коптю мозг, а совета спрашиваю...
.htaccess мне не подходит
Название: Чёрный и Белый список IP
Отправлено: AlieN от 10 Сентября 2005, 19:29:49
На папку, где расположены файлы
Цитировать


Order Allow,Deny
Allow from 144.206.0.0/16
Allow from 147.45.0.0/16
Allow from 159.93.0.0/16
Allow from 193.108.182.0/24
и т.д.
[/Limit>
Название: Чёрный и Белый список IP
Отправлено: Алексей от 13 Сентября 2005, 11:20:33
Цитировать
-DieseLok-:
скажем я выяснил что у чела адрес

62.149.13.80 и получил в своё распоряжение список адресов вида:

62.149.0.0/19 62.149.9.0/24

мне нужно проверить входит ли адрес человека в этот диапазон

Если да то 1 Если нет то 2

запдача для первого класса.