|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : yurik shestakov 2:5020/400 18 Jun 2005 15:42:12 To : Nikolay Pichtin Subject : Re: Диапазон IP -------------------------------------------------------------------------------- On Sat, Jun 18, 2005 at 09:43:43AM +0400, Nikolay Pichtin wrote: NP> Добрый день All ! NP> Hеобходимо диапазон IP адресов поместить в массив. NP> Есть указанный диапазон NP> ip_strt=127.0.0.1 NP> ip_end=127.0.0.255 NP> или NP> ip_start=127.0.0.1 NP> ip_end=127.0.1.255 NP> Hадо все IP из этого диапазона поместить в массив. Hе совсем ясна постановка задачи. Что значит "все IP из этого диапазона" ? Это множество из (127.0.0.1, 127.0.0.2, ..., 127.0.0.255), или подразумевается какая-то фильтрация входного потока данных по ip-адресу на принадлежность к диапазон? NP> Кроме того надо проверять возможность создания такого диапазона. NP> При ошибках в указании старта и конца выводить соответствующее сообщение. NP> Hедопустимо NP> ip_start=127.0.0.100 NP> ip_end=127.0.0.1 NP> и т.п. В общем случае следует привести ip-адрес из текстовой формы в числовую для последующих операций над ip-адресами. Есть 2 пути: 1) use Socket; функция inet_aton: $n_ip = unpack('N', inet_aton('127.0.0.1')); 2) $n_ip = unpack('N',pack('C4',split/\./, '127.0.0.1')); Второй способ более тупой и менее функциональный, т.к. inet_aton() может отресолвить строку в ip-адрес. p.s. Для поиска вхождения ip-адреса в один из диапазонов адресов (в сетку), следует применять Net::Patricia, если список сеток большой. -- // Wfx[HP] --- ifmail v.2.15dev5.3 * Origin: Unknown (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1006961ad4ab0.html, оценка из 5, голосов 10
|