вторник, 28 июля 2009 г.

Мой первый модуль на CPAN

Вот оно и случилось!
Залил на CPAN свой первый модуль Net::Whois::Parser. Модуль парсит ответы whois серверов и возвращает хеш данных о домене. Идея модуля возникла, когда мне понадобилось получать стандартизированные данные о домене. Поискав на CPAN, обнаружил там 2 модуля со схожими функциями: Net::Whois и Net::ParseWhois. Первый из них совсем не поддерживается, последняя версия датирована 1999 годом. Второй поддерживается, но тот функционал, который он предоставляет и охват whois серверов крайне мал.
Патчить этот модуль не представлялось возможным, т.к. его тогда пришлось полностью переписывать, а на это авторы не пошли бы ( наверно ). Время поджимало, работа стояла на месте... И я решил написать свой модуль и выложить его на CPAN. На написание базового кода ушел день, потом тестирование, переделки/доделки. И вот сегодня мой модуль вышел в свет.

Немного технических подробностей

На данный момент реализован парсер по умолчанию, который находит в тексте whois ответа пары вида key: value\n и пишет их в хеш.
Стандартизированы следующие ключи:
$info = {
domain => 'example.com',
nameservers => [
{ domain => 'ns1.example.com', ip => '1.10.100.25' },
{ domain => 'ns1.example.com' },
],
emails => [ 'admin@example.com', 'info@exmaple.com' ],
};

В дальнейшем планируется расширить список стандартных полей. Также есть возможность добавлять свои собственные парсеры и конвертацию названий полей. Возможность эта пока доступна через переменные модуля.