18c0693f

Использование nslookup



Использование nslookup

Если у вас есть опыт работы в Unix или вы уже программировали на других языках сценариев помимо Perl, то первая попытка может сильно походить на сценарий командного интерпретатора. Внешняя программа, вызываемая из Perl сценария, выполняет всю сложную работу:

use Data::Dumper;

Shostname = $ARGV[0];

Snslookup = "/usr/local/bin/nslookup";

# путь к nslookup ©servers = qw(nameserver1 nameserver2 nameserverS);

имена серверов имен foreach Sserver (©servers) {

&lookupaddress($hostname,Sserver); в заполняем %results }

%inv = reverse %results;

# инвертируем полученный хэш

if (scalar(keys %inv) > 1) {

print "Между DNS-серверами есть разногласияДп";

print Data::Dumper->Dump([\%results],["results"]),"\n"; }

» обращаемся к серверу, чтобы получить IP-адрес и прочую

# информацию для имени узла, переданного в программу в

командной строке. Результаты записываем в хэш %results sub lookupaddress

my($hostname,Sserver) = @_;

open(NSLOOK,"$nslookup Shostname Sserver|") or

die "Невозможно запустить nslookup:$!\n";

while (<NSLOOK>) {

« игнорировать, пока не дойдем до "Name: next until (/"Name:/);

следующая строка - это ответ Address: chomp($results{$server} = <NSLOOK>);

# удаляем имя поля

die "Ошибка, вывода nslookup \n" unless /Address/;

$results{$server} =" s/Addfess(es)?:\s+//;

все, с nslookup мы закончили last;

}

close(NSLOOK);

}

Преимущества такого подхода:

Недостатки такого подхода:





Все публикации раздела