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
446 447 448 |
# File 'lib/dnsruby.rb', line 446 def self.each_address(name, &block) DefaultResolver.each_address(name, &block) end |
.each_name(address, &proc) ⇒ Object
Iterates over all hostnames of address
461 462 463 |
# File 'lib/dnsruby.rb', line 461 def self.each_name(address, &proc) DefaultResolver.each_name(address, &proc) end |
.getaddress(name) ⇒ Object
Looks up the first IP address for name
436 437 438 |
# File 'lib/dnsruby.rb', line 436 def self.getaddress(name) DefaultResolver.getaddress(name) end |
.getaddresses(name) ⇒ Object
Looks up all IP addresses for name
441 442 443 |
# File 'lib/dnsruby.rb', line 441 def self.getaddresses(name) DefaultResolver.getaddresses(name) end |
.getname(address) ⇒ Object
Looks up the first hostname of address
451 452 453 |
# File 'lib/dnsruby.rb', line 451 def self.getname(address) DefaultResolver.getname(address) end |
.getnames(address) ⇒ Object
Looks up all hostnames of address
456 457 458 |
# File 'lib/dnsruby.rb', line 456 def self.getnames(address) DefaultResolver.getnames(address) end |
Instance Method Details
#each_address(name) ⇒ Object
Iterates over all IP addresses for name
484 485 486 487 488 489 490 491 492 493 494 495 496 497 |
# File 'lib/dnsruby.rb', line 484 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
513 514 515 516 517 518 519 520 521 522 |
# File 'lib/dnsruby.rb', line 513 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
471 472 473 474 |
# File 'lib/dnsruby.rb', line 471 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
477 478 479 480 481 |
# File 'lib/dnsruby.rb', line 477 def getaddresses(name) ret = [] each_address(name) {|address| ret << address} return ret end |
#getname(address) ⇒ Object
Looks up the first hostname of address
500 501 502 503 |
# File 'lib/dnsruby.rb', line 500 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
506 507 508 509 510 |
# File 'lib/dnsruby.rb', line 506 def getnames(address) ret = [] each_name(address) {|name| ret << name} return ret end |