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
503 504 505 |
# File 'lib/dnsruby.rb', line 503 def self.each_address(name, &block) DefaultResolver.each_address(name, &block) end |
.each_name(address, &proc) ⇒ Object
Iterates over all hostnames of address
518 519 520 |
# File 'lib/dnsruby.rb', line 518 def self.each_name(address, &proc) DefaultResolver.each_name(address, &proc) end |
.getaddress(name) ⇒ Object
Looks up the first IP address for name
493 494 495 |
# File 'lib/dnsruby.rb', line 493 def self.getaddress(name) DefaultResolver.getaddress(name) end |
.getaddresses(name) ⇒ Object
Looks up all IP addresses for name
498 499 500 |
# File 'lib/dnsruby.rb', line 498 def self.getaddresses(name) DefaultResolver.getaddresses(name) end |
.getname(address) ⇒ Object
Looks up the first hostname of address
508 509 510 |
# File 'lib/dnsruby.rb', line 508 def self.getname(address) DefaultResolver.getname(address) end |
.getnames(address) ⇒ Object
Looks up all hostnames of address
513 514 515 |
# File 'lib/dnsruby.rb', line 513 def self.getnames(address) DefaultResolver.getnames(address) end |
Instance Method Details
#each_address(name) ⇒ Object
Iterates over all IP addresses for name
541 542 543 544 545 546 547 548 549 550 551 552 553 554 |
# File 'lib/dnsruby.rb', line 541 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
570 571 572 573 574 575 576 577 578 579 |
# File 'lib/dnsruby.rb', line 570 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
528 529 530 531 |
# File 'lib/dnsruby.rb', line 528 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
534 535 536 537 538 |
# File 'lib/dnsruby.rb', line 534 def getaddresses(name) ret = [] each_address(name) {|address| ret << address} return ret end |
#getname(address) ⇒ Object
Looks up the first hostname of address
557 558 559 560 |
# File 'lib/dnsruby.rb', line 557 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
563 564 565 566 567 |
# File 'lib/dnsruby.rb', line 563 def getnames(address) ret = [] each_name(address) {|name| ret << name} return ret end |