О себе События Портфолио Статьи Гостевая Фотоальбом На злобу дня Ссылки Учеба Программы
Alex_K (г.Киров) - Алексей Кощеев
Хостинг и регистрация доменов в Кирове

Интересные решения Perl. Вопросы и ответы

Как работать с CIDR записью IP адресов в Perl?

CIDR — Classless Inter-Domain Routing — бесклассовая адресация — метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жесткие рамки классовой адресации.

Чтобы работать с блоками IP-адресов, заданных через CIDR для Perl есть модуль NET::CIDR. Документация к модулю довольно подробна и вы без труда найдете там, например, способы конвертации диапазонов IP-адресов в CIDR и обратно.

Практический пример - проверка принадлежности IP-адреса к Кировской области

#!/usr/bin/perl use strict; use Net::CIDR; my @kirovIPS = ( '213.24.213.0/24', '91.144.148.0/22', '91.144.172.0/22', '92.255.224.0/20', '94.181.192.0/18', '188.187.249.0/24', '109.194.40.0/21', '91.228.124.0/24', '77.72.136.0/21', '92.39.64.0/20', '178.141.0.0/16', '10.40.0.0/13', '79.175.28.0/24', '89.207.72.0/21', '213.24.252.224-213.24.252.231', '217.106.150.144-217.106.150.151', '217.106.150.88-217.106.150.95', '91.149.96.0/22', '81.4.194.0-81.4.194.247', '81.4.193.0/24', '81.4.203.0-81.4.203.31', '85.93.32.0/19', '89.254.192.0/18', '94.241.192.0/18', '178.44.0.0/17', '217.9.144.0/20'); $ENV{'REMOTE_ADDR'} ||= '127.0.0.1'; if (Net::CIDR::cidrlookup($ENV{'REMOTE_ADDR'}, @kirovIPS)) { print $ENV{'REMOTE_ADDR'} . " is Kirov IP\n"; } else { print $ENV{'REMOTE_ADDR'} . " is NOT Kirov IP\n"; }

Опубликовано: 28 августа 2011 года.

Далее: Как с помощью Perl закачать файл по FTP?
Предыдущий вопрос:Как прочитать данные из файла DBF?
Перейти к списку вопросов
Fanshop.ru

Рейтинг@Mail.ru

Rambler's Top100

© Алексей Кощеев, г.Киров, 2001-2017 хостинг предоставлен компанией Айхэд