URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 54219
[ Назад ]

Исходное сообщение
"принадлежность IP к сети из списка"

Отправлено sig , 07-Мрт-05 23:49 
Как на PERL вычислить принадлежность IP адреса без маски к сети из списка вида:
62.102.128.0/17    Russia
62.102.131.0/24    Russia2
62.102.132.0/24    Russia2
62.102.133.0/24    Russia2
62.102.136.0/23    Russia2
62.102.145.0/24    Russia2
62.102.152.0/23    Russia2
62.102.156.0/24    Russia2
62.102.253.0/24    Russia
62.140.248.0/21    Russia
62.141.112.0/20    Russia2
62.141.64.0/18    Russia
62.148.128.0/19    Russia
62.148.224.0/19    Russia2
62.148.224.0/20    Russia2
62.148.240.0/20    Russia2
62.148.254.0/24    Russia2
62.152.192.0/19    Russia

Заранее благодарен за ссылку или скрипт!


Содержание

Сообщения в этом обсуждении
"принадлежность IP к сети из списка"
Отправлено Skif , 08-Мрт-05 02:28 
>Как на PERL вычислить принадлежность IP адреса без маски к сети из
Посчитать... А как иначе? Вот тут на сайте вообще для ленивых табличка масок есть. бери и подставляй. А вообще не плохо бы выучить самому.
И скрипт ваяется просто на ура.


"принадлежность IP к сети из списка"
Отправлено Асен Тотин , 08-Мрт-05 02:37 
Привет,

1. Приводим искомый адрес в десятичное число
a.b.c.d -> a*256^3 + b*256^2 + c.256 + d

2. То же самое проделываем с каждым сегментом; приводим первый и последний адрес в десятичный вид и храним эти пары в двухмерном массиве (если С) или в двух сопряженных массивам или хэше (если Perl).

3. В цикле сравниваем искомый адрес с началом и концом каждого сегмента; если адрес больше начала и меньше конца сегмента, то попался :)

WWell,