Net::DNSを使って遊ぶ
Geekなぺーじ : ドメイン用DNSの発見(Net::DNS)
(http://www.geekpage.jp/programming/perl-network/net-dns-ns.php)
面白いと思ったので、自分でも試してみました。
コマンドラインで引数にドメインを渡すと、IPアドレスとNSレコードをコンソール出力します。
#!/usr/bin/perl use strict; use warnings; use Net::DNS; my $arg = $ARGV[0]; my $res = Net::DNS::Resolver->new; # Look up a host's addresses &showResult($res->search($arg), "address", "A", "IP Address"); # Find the nameservers for a domain &showResult($res->query($arg, "NS"), "nsdname", "NS", "NS Record "); exit 0; sub showResult { my $query = shift; my $property = shift; my $type = shift; my $dispName = shift; if ($query) { foreach my $rr ($query->answer) { next unless $rr->type eq $type; print $dispName, " : ", $rr->$property, "\n"; } } else { warn $dispName, " : ", $res->errorstring, "\n"; } }
コマンドラインで実行すると以下のようになります。
[user dir]$ ./netDNS.pl google.co.jp IP Address : 72.14.207.104 NS Record : ns2.google.com NS Record : ns3.google.com NS Record : ns4.google.com NS Record : ns1.google.com [user dir]$