Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Net::Dns::Resolver, Net::Dns::Resolver  
:(
    Опции темы
kukich
Дата 17.6.2010, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 2.12.2009

Репутация: нет
Всего: нет



Здравствуйте.Столкнулся с задачей проверить сервера на правильность работы с помощью несуществующих доменных имен.Для этой простой довльно таки задачей надо научится обходится с модулем Net::Dns::Resolver.Кроме CPAN негде посмотреть,а у меня с английским очень туго,может кто кинет ссылку или объяснит как этот модуль работает?
P.S. Пример задачи такой:
в FreeBSD на оперцаию dig 1231243124321412451234.ru
выдает статус NXDOMAIN (т.е. такого домена нет).Это как раз то что мне нужно,но только усилиями перл.
PM MAIL   Вверх
dva300
Дата 17.6.2010, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: нет
Всего: 1



Цитата(kukich @ 17.6.2010,  15:30)
Здравствуйте.Столкнулся с задачей проверить сервера на правильность работы с помощью несуществующих доменных имен.Для этой простой довльно таки задачей надо научится обходится с модулем Net::Dns::Resolver.Кроме CPAN негде посмотреть,а у меня с английским очень туго,может кто кинет ссылку или объяснит как этот модуль работает?
P.S. Пример задачи такой:
в FreeBSD на оперцаию dig 1231243124321412451234.ru
выдает статус NXDOMAIN (т.е. такого домена нет).Это как раз то что мне нужно,но только усилиями перл.

Доброго дня, метод конечно как мне кажется не самый лучший потому как думаю есть более продвинутые утилиты для данной проверки но раз просили по на perl можно сделать примерно следующее.
Пояснение: главное во всем этом это список NS которые вы собираетесь тестировать. В данном случае это есть @dns_servers Далее поочередно берем каждый и делаем запрос к данному NS
Здесь важно помнить что если NS работает только в режиме форвардинга и  recurse => 0 то будет выдано для не правильного домена не NXDOMAIN а  NOERROR
Проверяется запись A потому как она должна быть а записей по типу MX может и не быть.


Код

 use Net::DNS;
 use strict;
 my @dns_servers = qw(192.168.1.1 10.1.1.128 10.1.2.128);
 foreach my $server (@dns_servers)
  {
  my $res   = Net::DNS::Resolver->new(nameservers => [$server],recurse => 1,debug => 0);
  my $query = $res->search("sdfsdfksjfkljl.net");
  if ($query) 
    {
        foreach my $rr ($query->answer) 
        {
          next unless $rr->type eq "A";
          print "Answer found at NS =  [$server] : ",$rr->address, "\n";
        }
    } 
    else 
    {
        warn "query failed from NS = [$server] : ", $res->errorstring, "\n";
    }
}


ну вот, примерно как-то так.

P.S. что-то посидел подумал - какая-то плохая проверка получается smile если тестировать NS на предмет того что выше а именно простой доступности доменов это одно (но какой в этом смысл)
другое дело когда тестирование проводиться для зон которые непосредственно находятся на тестируемых NS - тогда надо сравнивать с чем-то (например правильность введенного IP и тд - как вариант при глобальной смене настроек и проверки на ошибки забывчивости) проверять правильность SOA, обратной зоны... вообщем думаю что стоит просто поискать нормальную готовую утилиту. 

Это сообщение отредактировал(а) dva300 - 17.6.2010, 18:50
--------------------
Участник движения Культура Вождения
PM   Вверх
pirojok
Дата 18.6.2010, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 11.11.2007

Репутация: нет
Всего: нет



Как вариант, можно из perl через `` вызывать dig 1231243124321412451234.ru и парсить результат
PM MAIL   Вверх
kukich
Дата 24.6.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 2.12.2009

Репутация: нет
Всего: нет



Большое спасибо,очень помог!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.