Class: Dnsruby::Resolv
- Inherits:
-
Object
- Object
- Dnsruby::Resolv
- Defined in:
- lib/dnsruby/resolv.rb
Constant Summary collapse
- DefaultResolver =
Default Resolver to use for Dnsruby class methods
self.new
- AddressRegex =
Address RegExp to use for matching IP addresses
/(?:#{IPv4::Regex})|(?:#{IPv6::Regex})/
Class Method Summary collapse
-
.each_address(name, &block) ⇒ Object
Iterates over all IP addresses for
name
. -
.each_name(address, &proc) ⇒ Object
Iterates over all hostnames of
address
. -
.getaddress(name) ⇒ Object
Looks up the first IP address for
name
. -
.getaddresses(name) ⇒ Object
Looks up all IP addresses for
name
. -
.getname(address) ⇒ Object
Looks up the first hostname of
address
. -
.getnames(address) ⇒ Object
Looks up all hostnames of
address
.
Instance Method Summary collapse
-
#each_address(name) ⇒ Object
Iterates over all IP addresses for
name
. -
#each_name(address) ⇒ Object
Iterates over all hostnames of
address
. -
#getaddress(name) ⇒ Object
Looks up the first IP address for
name
. -
#getaddresses(name) ⇒ Object
Looks up all IP addresses for
name
. -
#getname(address) ⇒ Object
Looks up the first hostname of
address
. -
#getnames(address) ⇒ Object
Looks up all hostnames of
address
. -
#initialize(resolvers = [Hosts.new, DNS.new]) ⇒ Resolv
constructor
Creates a new Resolv using
resolvers
.
Constructor Details
Class Method Details
.each_address(name, &block) ⇒ Object
Iterates over all IP addresses for name
19 20 21 |
# File 'lib/dnsruby/resolv.rb', line 19 def self.each_address(name, &block) DefaultResolver.each_address(name, &block) end |
.each_name(address, &proc) ⇒ Object
Iterates over all hostnames of address
34 35 36 |
# File 'lib/dnsruby/resolv.rb', line 34 def self.each_name(address, &proc) DefaultResolver.each_name(address, &proc) end |
.getaddress(name) ⇒ Object
Looks up the first IP address for name
9 10 11 |
# File 'lib/dnsruby/resolv.rb', line 9 def self.getaddress(name) DefaultResolver.getaddress(name) end |
.getaddresses(name) ⇒ Object
Looks up all IP addresses for name
14 15 16 |
# File 'lib/dnsruby/resolv.rb', line 14 def self.getaddresses(name) DefaultResolver.getaddresses(name) end |
.getname(address) ⇒ Object
Looks up the first hostname of address
24 25 26 |
# File 'lib/dnsruby/resolv.rb', line 24 def self.getname(address) DefaultResolver.getname(address) end |
.getnames(address) ⇒ Object
Looks up all hostnames of address
29 30 31 |
# File 'lib/dnsruby/resolv.rb', line 29 def self.getnames(address) DefaultResolver.getnames(address) end |
Instance Method Details
#each_address(name) ⇒ Object
Iterates over all IP addresses for name
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/dnsruby/resolv.rb', line 57 def each_address(name) if AddressRegex =~ name yield name return end yielded = false @resolvers.each {|r| r.each_address(name) {|address| yield address.to_s yielded = true } return if yielded } end |
#each_name(address) ⇒ Object
Iterates over all hostnames of address
86 87 88 89 90 91 92 93 94 95 |
# File 'lib/dnsruby/resolv.rb', line 86 def each_name(address) yielded = false @resolvers.each {|r| r.each_name(address) {|name| yield name.to_s yielded = true } return if yielded } end |
#getaddress(name) ⇒ Object
Looks up the first IP address for name
44 45 46 47 |
# File 'lib/dnsruby/resolv.rb', line 44 def getaddress(name) each_address(name) {|address| return address} raise ResolvError.new("no address for #{name}") end |
#getaddresses(name) ⇒ Object
Looks up all IP addresses for name
50 51 52 53 54 |
# File 'lib/dnsruby/resolv.rb', line 50 def getaddresses(name) ret = [] each_address(name) {|address| ret << address} return ret end |
#getname(address) ⇒ Object
Looks up the first hostname of address
73 74 75 76 |
# File 'lib/dnsruby/resolv.rb', line 73 def getname(address) each_name(address) {|name| return name} raise ResolvError.new("no name for #{address}") end |
#getnames(address) ⇒ Object
Looks up all hostnames of address
79 80 81 82 83 |
# File 'lib/dnsruby/resolv.rb', line 79 def getnames(address) ret = [] each_name(address) {|name| ret << name} return ret end |