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
506 507 508 |
# File 'lib/dnsruby.rb', line 506 def self.each_address(name, &block) DefaultResolver.each_address(name, &block) end |
.each_name(address, &proc) ⇒ Object
Iterates over all hostnames of address
521 522 523 |
# File 'lib/dnsruby.rb', line 521 def self.each_name(address, &proc) DefaultResolver.each_name(address, &proc) end |
.getaddress(name) ⇒ Object
Looks up the first IP address for name
496 497 498 |
# File 'lib/dnsruby.rb', line 496 def self.getaddress(name) DefaultResolver.getaddress(name) end |
.getaddresses(name) ⇒ Object
Looks up all IP addresses for name
501 502 503 |
# File 'lib/dnsruby.rb', line 501 def self.getaddresses(name) DefaultResolver.getaddresses(name) end |
.getname(address) ⇒ Object
Looks up the first hostname of address
511 512 513 |
# File 'lib/dnsruby.rb', line 511 def self.getname(address) DefaultResolver.getname(address) end |
.getnames(address) ⇒ Object
Looks up all hostnames of address
516 517 518 |
# File 'lib/dnsruby.rb', line 516 def self.getnames(address) DefaultResolver.getnames(address) end |
Instance Method Details
#each_address(name) ⇒ Object
Iterates over all IP addresses for name
544 545 546 547 548 549 550 551 552 553 554 555 556 557 |
# File 'lib/dnsruby.rb', line 544 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
573 574 575 576 577 578 579 580 581 582 |
# File 'lib/dnsruby.rb', line 573 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
531 532 533 534 |
# File 'lib/dnsruby.rb', line 531 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
537 538 539 540 541 |
# File 'lib/dnsruby.rb', line 537 def getaddresses(name) ret = [] each_address(name) {|address| ret << address} return ret end |
#getname(address) ⇒ Object
Looks up the first hostname of address
560 561 562 563 |
# File 'lib/dnsruby.rb', line 560 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
566 567 568 569 570 |
# File 'lib/dnsruby.rb', line 566 def getnames(address) ret = [] each_name(address) {|name| ret << name} return ret end |