class Dnsruby::Resolv

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.

Constants

AddressRegex

Address RegExp to use for matching IP addresses

DefaultResolver

Default Resolver to use for Dnsruby class methods

Public Class Methods

each_address(name, &block) click to toggle source

Iterates over all IP addresses for name

# File lib/dnsruby.rb, line 503
def self.each_address(name, &block)
  DefaultResolver.each_address(name, &block)
end
each_name(address, &proc) click to toggle source

Iterates over all hostnames of address

# File lib/dnsruby.rb, line 518
def self.each_name(address, &proc)
  DefaultResolver.each_name(address, &proc)
end
getaddress(name) click to toggle source

Looks up the first IP address for name

# File lib/dnsruby.rb, line 493
def self.getaddress(name)
  DefaultResolver.getaddress(name)
end
getaddresses(name) click to toggle source

Looks up all IP addresses for name

# File lib/dnsruby.rb, line 498
def self.getaddresses(name)
  DefaultResolver.getaddresses(name)
end
getname(address) click to toggle source

Looks up the first hostname of address

# File lib/dnsruby.rb, line 508
def self.getname(address)
  DefaultResolver.getname(address)
end
getnames(address) click to toggle source

Looks up all hostnames of address

# File lib/dnsruby.rb, line 513
def self.getnames(address)
  DefaultResolver.getnames(address)
end
new(resolvers=[Hosts.new, DNS.new]) click to toggle source

Creates a new Resolv using resolvers

# File lib/dnsruby.rb, line 523
def initialize(resolvers=[Hosts.new, DNS.new])
  @resolvers = resolvers
end

Public Instance Methods

each_address(name) { |name| ... } click to toggle source

Iterates over all IP addresses for name

# 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) { |name| ... } click to toggle source

Iterates over all hostnames of address

# 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) click to toggle source

Looks up the first IP address for name

# 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) click to toggle source

Looks up all IP addresses for name

# File lib/dnsruby.rb, line 534
def getaddresses(name)
  ret = []
  each_address(name) {|address| ret << address}
  return ret
end
getname(address) click to toggle source

Looks up the first hostname of address

# 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) click to toggle source

Looks up all hostnames of address

# File lib/dnsruby.rb, line 563
def getnames(address)
  ret = []
  each_name(address) {|name| ret << name}
  return ret
end