Resolv
is a thread-aware DNS
resolver library written in Ruby. Resolv
can handle multiple DNS
requests concurrently without blocking the entire Ruby interpreter.
See also resolv-replace.rb to replace the libc resolver with Resolv
.
Resolv
can look up various DNS
resources using the DNS
module directly.
Examples:
p Resolv.getaddress "www.ruby-lang.org"
p Resolv.getname "210.251.121.214"
Resolv::DNS.open do |dns|
ress = dns.getresources "www.ruby-lang.org", Resolv::DNS::Resource::IN::A
p ress.map(&:address)
ress = dns.getresources "ruby-lang.org", Resolv::DNS::Resource::IN::MX
p ress.map { |r| [r.exchange.to_s, r.preference] }
end
Bugs
-
NIS is not supported.
-
/etc/nsswitch.conf is not supported.
- MODULE Resolv::LOC
- CLASS Resolv::DNS
- CLASS Resolv::Hosts
- CLASS Resolv::IPv4
- CLASS Resolv::IPv6
- CLASS Resolv::MDNS
- CLASS Resolv::ResolvError
- CLASS Resolv::ResolvTimeout
- E
- G
- N
Constants
AddressRegex | = | /(?:#{IPv4::Regex})|(?:#{IPv6::Regex})/ |
Address |
||
DefaultResolver | = | self.new |
Default resolver to use for |
||
VERSION | = | "0.3.0" |
Class Public methods
each_address(name, &block) Link
Iterates over all IP addresses for name
.
each_name(address, &proc) Link
Iterates over all hostnames for address
.
getaddress(name) Link
Looks up the first IP address for name
.
getaddresses(name) Link
Looks up all IP address for name
.
getname(address) Link
Looks up the hostname of address
.
getnames(address) Link
Looks up all hostnames for address
.
Instance Public methods
each_address(name) Link
Iterates over all IP addresses for name
.
each_name(address) Link
Iterates over all hostnames for address
.
getaddress(name) Link
Looks up the first IP address for name
.
getaddresses(name) Link
Looks up all IP address for name
.
getname(address) Link
Looks up the hostname of address
.