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

Исходное сообщение
"Подскажите как интереснее решить задачу"

Отправлено Денис , 30-Июл-07 02:36 
Есть список, который содержит сети типа:

192.168.0.0\16
172.20.0.0\16
10.0.0.0\17

И есть адрес, допустим 10.0.100.3

Подкажите, как красивее извернуться на perl, чтобы сверить попадает ли адрес в указанную подсеть или нет.

Понятно, что можно высчитывать мин. и макс. адрес и сравнивать далее, но хотелось бы как-то повысить быстродействие этой операции.

Спасибо за помощь.


Содержание

Сообщения в этом обсуждении
"Подскажите как интереснее решить задачу"
Отправлено ovax , 30-Июл-07 02:49 
>[оверквотинг удален]
>
>И есть адрес, допустим 10.0.100.3
>
>Подкажите, как красивее извернуться на perl, чтобы сверить попадает ли адрес в
>указанную подсеть или нет.
>
>Понятно, что можно высчитывать мин. и макс. адрес и сравнивать далее, но
>хотелось бы как-то повысить быстродействие этой операции.
>
>Спасибо за помощь.

Если IP_ADREES AND NETMASK == NET_ADDRESS , то принадлежит
AND в данном случае - логическое "И"



"Подскажите как интереснее решить задачу"
Отправлено vg , 30-Июл-07 11:10 
>[оверквотинг удален]
>>Подкажите, как красивее извернуться на perl, чтобы сверить попадает ли адрес в
>>указанную подсеть или нет.
>>
>>Понятно, что можно высчитывать мин. и макс. адрес и сравнивать далее, но
>>хотелось бы как-то повысить быстродействие этой операции.
>>
>>Спасибо за помощь.
>
>Если IP_ADREES AND NETMASK == NET_ADDRESS , то принадлежит
>AND в данном случае - логическое "И"

Есть готовые модули к Perl, с которыми можно разные вычисления делать.
Например: p5-Net-Subnets.