e$B@.@%$G$9!#e(B
Resolv::DNS#getaddresses e$BEy$,e(B IPv6 e$B%"%I%l%9$rJV$7$^$;$s!#e(B
e$B$?$H$($P!“e(Bwww.jprs.jp e$B$K$Oe(B AAAA
e$B%l%3!<%I$,@_Dj$7$F$”$k$N$G$9$,!“e(BIPv4e$B%”%Ie(B
e$B%l%9$7$+JV$C$F$-$^$;$s!#e(B
% dig any www.jprs.jp
;; ANSWER SECTION:
www.jprs.jp. 82163 IN A 202.11.16.167
www.jprs.jp. 82163 IN AAAA 2001:218:2003::1
% ruby -rresolv -e’p Resolv::DNS.new.getaddresses(“www.jprs.jp”)’
[#<Resolv::IPv4 202.11.16.167>]
e$B$3$l$O!“e(B390e$B9TL$”$?$j$Ne(B Resolv::DNS#each_address e$B$,e(B A
e$B%l%3!<%I$7$+<h$C$Fe(B
e$B$-$F$$$J$$$+$i$G$9!#e(B
def each_address(name)
each_resource(name, Resource::IN::A) {|resource| yield
resource.address}
end
e$B0J2<$N$h$&$Ke(B ANY
e$B$G$9$Y$F=&$C$F$/$k$h$&$K$9$l$P2r7h$7$^$9!#$3$N>l9g!“e(B
IPv6 e$B%”%I%l%9$N$_$N%[%9%H$N$H$-$K!"e(Bgetaddress e$B$G:#$^$Ge(B no
address e$B$@$C$?e(B
e$B$H$3$m!“e(BIPv6 e$B%”%I%l%9$,JV$k$h$&$K$J$j$^$9!#e(B
e$B$J$*!"e(Bbuf e$B$r@_$1$J$$>l9g!“e(Bns0.v6.ntt.net e$B$N$h$&$Ke(B AAAA
e$B%l%3!<%I$,e(B A e$B%le(B
e$B%3!<%I$h$j@h$KEPO?$5$l$F$$$k%[%9%H$N;~$Ke(B getaddress e$B$Ge(B IPv6
e$B%”%I%l%9$,e(B
e$BJV$C$F$-$F$7$^$&$?$a!“8_49@-$KLdBj$,@8$8$k62$l$,$”$j$^$9!#e(B
Index: lib/resolv.rb
— lib/resolv.rb (e$B%j%S%8%g%se(B 14750)
+++ lib/resolv.rb (e$B:n6H%3%T!<e(B)
@@ -388,7 +388,16 @@
# be a Resolv::IPv4 or Resolv::IPv6
def each_address(name)
-
each_resource(name, Resource::IN::A) {|resource| yield
resource.address}
-
buf = []
-
each_resource(name, Resource::IN::ANY) do |resource|
-
case resource.address
-
when Resolv::IPv4
-
yield resource.address
-
when Resolv::IPv6
-
buf << resource.address
-
end
-
end
-
buf.each {|resource| yield resource.address}
end
@@ -445,7 +454,6 @@
# * Resolv::DNS::Resource::IN::A
# * Resolv::DNS::Resource::IN::AAAA
# * Resolv::DNS::Resource::IN::ANY