IPv6アドレスの解決(Net::DNS)
ここでは、Net::DNSを使ってIPv6アドレスを表すAAAAレコードを取得する方法を説明したいと思います。
Net::DNSサンプル
以下に単純なサンプルを示します。
#!/usr/bin/perl
use Net::DNS;
$res = Net::DNS::Resolver->new;
$query = $res->search('www.kame.net', 'AAAA');
#失敗した場合
if (!$query) {
print $res->errorstring;
print "\n";
exit;
}
#結果を1行づつ表示
foreach $rr ($query->answer) {
if ($rr->type eq "AAAA") {
print $rr->address;
print "\n";
}
}
exit;
単一のホスト名(もしくはFQDN)に複数のIPアドレスが関連つけられていることがあるため、resolvの結果は複数になっています。
AAAAは「クワッドエー」と読みます。 IPv4のアドレスはAレコードで表されます。 32bitのIPv4アドレスの4倍のビット数を持つIPv6アドレスを表すレコード名は、Aの数も4倍の4になっています。