#!/usr/local/bin/perl -w
my
$res
= Net::DNS::Resolver->new;
if
(
@ARGV
&& (
$ARGV
[0] =~ /^@/)) {
my
$nameserver
=
shift
;
$nameserver
=~ s/^@//;
$res
->nameservers(
$nameserver
);
}
die
"Usage: "
, basename($0),
" [ \@nameserver ] name [ type [ class ] ]\n"
unless
(
@ARGV
>= 1) && (
@ARGV
<= 3);
my
(
$name
,
$type
,
$class
) =
@ARGV
;
$type
||=
"A"
;
$class
||=
"IN"
;
if
(
uc
(
$type
) eq
"AXFR"
) {
my
@rrs
=
$res
->axfr(
$name
,
$class
);
if
(
@rrs
) {
foreach
my
$rr
(
@rrs
) {
$rr
->
print
;
}
}
else
{
die
"zone transfer failed: "
,
$res
->errorstring,
"\n"
;
}
}
else
{
my
$answer
=
$res
->
send
(
$name
,
$type
,
$class
);
if
(
$answer
) {
$answer
->
print
;
}
else
{
die
"query failed: "
,
$res
->errorstring,
"\n"
;
}
}