Rubyで書かれたリゾルバ(名前解決)ライブラリ。 Since it is written in Ruby, it is thread-aware. I.e. it can resolv many hostnames concurrently.
It is possible to lookup various resources of DNS using DNS module directly.
Resolv.getaddress("www.ruby-lang.org") Resolv.getname("210.251.121.214").to_s Resolv::DNS.new.getresources("www.ruby-lang.org", Resolv::DNS::Resource::IN::A).collect {|r| r.address} Resolv::DNS.new.getresources("ruby-lang.org", Resolv::DNS::Resource::IN::MX).collect {|r| [r.exchange.to_s, r.preference]}
Resolv.getaddress(name)
Resolv.getaddresses(name)
Resolv.each_address(name) {|address| ...}
They lookups IP addresses of name which represents a hostname as a string.
getaddress returns first entry of lookupped addresses. getaddresses returns lookupped addresses. each_address iterates over lookupped addresses.
例:
Resolv.getaddress("www.ruby-lang.org").to_s #=> "210.251.121.214"
Resolv.getname(address)
Resolv.getnames(address)
Resolv.each_name(address) {|name| ...}
lookups hostnames of address which represents IP address as a string.
getname returns first entry of lookupped names. getnames returns lookupped names. each_names iterates over lookupped names.
例:
Resolv.getname("210.251.121.214").to_s #=> "helium.ruby-lang.org"
hostname resolver using /etc/hosts format.
Resolv::Hosts.new(hosts='/etc/hosts')
Resolv::Hosts#getaddress(name)
Resolv::Hosts#getaddresses(name)
Resolv::Hosts#each_address(name) {|address| ...}
address lookup methods.
Resolv::Hosts#getname(address)
Resolv::Hosts#getnames(address)
Resolv::Hosts#each_name(address) {|name| ...}
hostnames lookup methods.
DNS stub resolver.
Resolv::DNS.new(resolv_conf='/etc/resolv.conf')
Resolv::DNS#getaddress(name)
Resolv::DNS#getaddresses(name)
Resolv::DNS#each_address(name) {|address| ...}
address lookup methods.
name must be a instance of Resolv::Name or String. Lookupped address is represented as an instance of Resolv::IPv4 or Resolv::IPv6.
Resolv::DNS#getname(address)
Resolv::DNS#getnames(address)
Resolv::DNS#each_name(address) {|name| ...}
hostnames lookup methods.
address must be a instance of Resolv::IPv4, Resolv::IPv6 or String. Lookupped name is represented as an instance of Resolv::Name.
Resolv::DNS#getresource(name, typeclass)
Resolv::DNS#getresources(name, typeclass)
Resolv::DNS#each_resource(name, typeclass) {|resource| ...}
They lookup DNS resources of name. name must be a instance of Resolv::Name or String.
typeclass should be one of follows:
Lookupped resource is represented as an instance of (a subclass of) Resolv::DNS::Resource.
name
name
mname
rname
serial
refresh
retry
expire
minimum
cpu
os
rmailbx
emailbx
preference
exchange
data
address
address
protocol
bitmap
name
address
Resolv::DNS::Name.create(name)
Resolv::DNS::Name#to_s
Resolv::IPv4.create(address)
Resolv::IPv4#to_s
Resolv::IPv4#to_name
Resolv::IPv4::Regex
IPv4のアドレスの正規表現。
Resolv::IPv6.create(address)
Resolv::IPv6#to_s
Resolv::IPv6#to_name
Resolv::IPv6::Regex
IPv6のアドレスの正規表現。
NISはサポートされていません。