Added -s option (for nameserver)
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Tue, 07 Apr 2015 14:14:51 +0200
changeset 2 52d1ff194af0
parent 1 48ba621bc598
child 3 a08198ba5150
Added -s option (for nameserver)
bin/dnssec-info
lib/DNSSec.pm
--- a/bin/dnssec-info	Thu Apr 02 13:26:45 2015 +0200
+++ b/bin/dnssec-info	Tue Apr 07 14:14:51 2015 +0200
@@ -31,7 +31,9 @@
 
 sub main {
     my $domain;
+    my $server;
     GetOptions(
+	's|server=s' => \$server,
         'h|help' => sub { pod2usage(-exitval => 0) },
         'm|man'  => sub {
             pod2usage(
@@ -45,7 +47,7 @@
     say $domain, "\n", '-' x length $domain;
 
     # get the dnskeys directory from the public available information
-    my @ki = keyinfo $domain;
+    my @ki = keyinfo {-server => $server }, $domain;
 #    use Data::Dumper;
 #    die Dumper \@ki;
 
@@ -78,7 +80,7 @@
 
 =head1 SYNOPSIS
 
- dnssec-info <domain>
+ dnssec-info [-s|--server <server>] <domain>
 
 =head1 DESCRIPTION
 
@@ -93,6 +95,11 @@
 
 Helpful information.
 
+=item B<-s>|B<--server> I<server>
+
+Send the query to a specific DNS server. (default: depend on your local settings)
+
+
 =back
 
 =cut
--- a/lib/DNSSec.pm	Thu Apr 02 13:26:45 2015 +0200
+++ b/lib/DNSSec.pm	Tue Apr 07 14:14:51 2015 +0200
@@ -7,11 +7,15 @@
 
 our @EXPORT_OK = qw(keyset ksk keyinfo);
 
-my $resolver = Net::DNS::Resolver->new;
-$resolver->dnssec(1);
 
 sub keyset {
+    my %arg = %{+shift} if ref $_[0] eq ref {};
     my $domain = shift;
+
+    my $resolver = Net::DNS::Resolver->new(
+	$arg{-server} ? (nameservers => [$arg{-server}]) : ());
+    $resolver->dnssec(1);
+
     my $keys = $resolver->query($domain => (DNSKEY => 'IN'))
       or die $resolver->errorstring;
 
@@ -25,7 +29,7 @@
 }
 
 sub keyinfo {
-    my $ks = keyset shift;
+    my $ks = keyset @_;
     my @keyinfo;
     foreach my $k (ksk $ks->keys) {
 	my %keyinfo;