Class: Dnsruby::Resolv
- Inherits:
-
Object
- Object
- Dnsruby::Resolv
- Defined in:
- lib/dnsruby.rb
Overview
The Resolv class can be used to resolve addresses using /etc/hosts and /etc/resolv.conf,
The DNS class may be used to perform more queries. If greater control over the sending of packets is required, then the Resolver or SingleResolver classes may be used.
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
396 397 398 |
# File 'lib/dnsruby.rb', line 396 def self.each_address(name, &block) DefaultResolver.each_address(name, &block) end |
.each_name(address, &proc) ⇒ Object
Iterates over all hostnames of address
411 412 413 |
# File 'lib/dnsruby.rb', line 411 def self.each_name(address, &proc) DefaultResolver.each_name(address, &proc) end |
.getaddress(name) ⇒ Object
Looks up the first IP address for name
386 387 388 |
# File 'lib/dnsruby.rb', line 386 def self.getaddress(name) DefaultResolver.getaddress(name) end |
.getaddresses(name) ⇒ Object
Looks up all IP addresses for name
391 392 393 |
# File 'lib/dnsruby.rb', line 391 def self.getaddresses(name) DefaultResolver.getaddresses(name) end |
.getname(address) ⇒ Object
Looks up the first hostname of address
401 402 403 |
# File 'lib/dnsruby.rb', line 401 def self.getname(address) DefaultResolver.getname(address) end |
.getnames(address) ⇒ Object
Looks up all hostnames of address
406 407 408 |
# File 'lib/dnsruby.rb', line 406 def self.getnames(address) DefaultResolver.getnames(address) end |
Instance Method Details
#each_address(name) ⇒ Object
Iterates over all IP addresses for name
434 435 436 437 438 439 440 441 442 443 444 445 446 447 |
# File 'lib/dnsruby.rb', line 434 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
463 464 465 466 467 468 469 470 471 472 |
# File 'lib/dnsruby.rb', line 463 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
421 422 423 424 |
# File 'lib/dnsruby.rb', line 421 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
427 428 429 430 431 |
# File 'lib/dnsruby.rb', line 427 def getaddresses(name) ret = [] each_address(name) {|address| ret << address} return ret end |
#getname(address) ⇒ Object
Looks up the first hostname of address
450 451 452 453 |
# File 'lib/dnsruby.rb', line 450 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
456 457 458 459 460 |
# File 'lib/dnsruby.rb', line 456 def getnames(address) ret = [] each_name(address) {|name| ret << name} return ret end |