Perl для системного администрирования

       

Служба каталогов WHOIS


WHOIS - это еще одна полезная служба каталогов, предоставляющая доступную только для чтения информацию. WHOIS обеспечивает услуги, подобные телефонному справочнику для машин, сетей и людей. Некоторые крупные организации, такие как IBM, UC Berkeley и MIT, предоставляют услуги WHOIS, но самые известные WHOIS-серверы принадлежат InterNIC и другим компаниям, занимающимся вопросами регистрации в Интернете, в том числе RIPE (имеет дело с европей-

скими IP-адресами) и APNIC (Asia/Pacific, Азиатские/Тихоокеанские адреса).

При необходимости связаться с системным администратором какого-либо узла, чтобы сообщить ему о подозрительных действиях в сетях, следует использовать службу WHOIS для получения контактной информации. В большинстве операционных систем для выполнения WHOlS-запросов существуют как GUI-инструменты, так и инструменты, запускаемые из командной строки. Типичный запрос в Unix выглядит так:

% whois -h whois.networksolutions.com brandeis.edu

<large legal paragraph omitted>

Registrant;

Brandeis University (BRANDEIS-DOM)

Information Technology Services

Waltham, MA 02454-9110

US

Domain Name: BRANDEIS.EDU

Administrative Contact:

Koskovich, Bob (BK138) user@BRANDEIS.EDU

+1-781-555-1212 (FAX) +1-781-555-1212 Technical Contact, Zone Contact:



Hostmaster, Brandeis С (RCG51) hostmaster@BRANDEIS.EDU

+1-781-555-1212 (FAX) +1-781-555-1212 Billing Contact:

Koskovich, Bob (BK138) user@BRANDEIS.EDU

+1-781-555-1212 (FAX) +1-781-555-1212

Record last updated on l3-0ct-1999.

Record created on 27-May-1987.

Database last updated on 19-Dec-1999 17:42:19 EST.

Domain servers in listed order:

LILITH.UNET.BRANDEIS.EDU 129.64.99.12

FRASIER.UNET.BRANDEIS.EDU 129. 64.99.11

DIAMOND. CS.BRANDEIS.EDU 129. 64. 2. 3

DNSAUTH1.SYS.GTEI.NET 4.2.49.2

DNSAUTH2.SYS.GTEI.NET 4.2.49.3

Если же нужно выяснить владельца определенного диапазона IP-адресов, то и тут поможет WHOIS:

% whois -h whois.arin.net 129.64.2

Brandeis University (NET-BRANDEIS) 415 South Street Waltham, MA 02254




Netname: BRANDEIS Netnumber: 129.64.0.0

Coordinator:

Koskovich, Bob (BK138-ARIN) user@BRANDEIS.EDU 617-555-1212 Служба каталогов WHOIS 211

Domain System inverse mapping provided by:

BINAH.CC.BRANQEIS.EDU 129.64.1.3 NIC.NEAR.NET 192.52.71,4

NOC.CERF.NET 192.153.156.22

Record last updated on 10-Jul-97.

Database last updated on 9-Oct-98 16:10:44 EOT

The ARIN Registration Services Host contains ONLY Internet Network Information: Networks, ASN's, and related POC's. Please use the whois server at rs.internic.net for DOMAIN related Information and nic.mil for NIPRNET Information.

В предыдущем примере применялся WHOIS-клиент из Unix, работающий в командной строке. В Windows NT и MacOS подобные клиенты не входят, тем не менее, это не должно остановить пользователей данных систем от получения доступа к нужной информации. Существует

много условно бесплатных клиентов, но не так трудно с помощью модуля Net: : Whois создать на Perl очень простой клиент (модуль Net: : Whois первоначально был написан Чипом Салзенбергом (Chip Salzenberg), а теперь поддерживается Даной Хьюдес (Dana Hudes)). Следующий

код - это лишь несколько измененная версия примера из документации, поставляемой вместе с модулем:

use Net::Whois;

fl запрашиваем сервер, возвращая объект с результатами my $w = new Net::Whois::Domain $ARGV[0] or

die "Невозможно соединиться с сервером Whois\n", die "Никакой информации о домене $ARGV[0] не найдено\п " unless ($w->ok),

и выводим части этого объекта

print "Домен: ", $w->domain, "\n";

print "Имя: ", $w->name, "\n";

print "Тег: ", $w->tag, "\n";

print "Адрес:\n", map { " $_\n" } $w->address;

print "Страна: ", $w->country, "\n";

print "Запись создана: ".$w->record_created."\n";

print "Запись обновлена: ",$w->record_updated."\n";

и выводим серверы имен ($w->servers returns a list of lists)



print "Серверы именДп", map { " $$_[0] ($$_[1])\n" } @{$w->servers;

tt выводим список контактов ($w->contacts returrs a nasn of lists)

my($c,$t).

if ($c = $w->contacts) {

print "Contacts :\n";

for $t (sort keys %$c) { print " St.\n": 212 Глава 6. Службы каталогов

print map { "\t$_\n" } @{$$c{$t}}; } }

Запрос WHOIS сервера InterNIC/Network Solutions - это простой процесс. Для возвращения результата применяется мо«дуль Net::Whois: : Domain. Методы этого объекта, названные в соответствии с полями, которые получает WHOIS-запрос, обеспечивают доступ к данным.

WHOIS предстоит сыграть значительную роль в главе 8 «Электронная почта», а сейчас перейдем к более сложным службам каталогов. Мы уже начали этот переход, переключаясь со службы Finger на WHOIS. Между рассмотренными способами использования Finger и WHOIS существует важное различие - структура.

Вывод Finger отличается от реализации к реализации. И хотя существуют некоторые соглашения, форму он имеет свободную. WHOIS-cepвер InterNIC/Network Solutions возвращает данные более постоянной структуры. Можно рассчитывать на то, что у каждой записи будут, по крайней мере, поля Name, Address и Domain. Модуль Net: :Whois полагается на эту структуру и анализирует результаты, разбивая их на поля. Существует еще один модуль Випула Вед Пракаша (Vipul Ved Prakash) -

Net: :Xwhois, который делает шаг вперед, обеспечивая интерфейс для анализа информации, по-разному отформатированной различными WHOIS-серверами.

И хотя в протоколе WHOIS нет никакого упоминания о полях, вызываемые нами модули начинают полагаться на структуру информации. Службы каталогов, о которых пойдет речь, более серьезно относятся к этой структуре.






Содержание раздела