Class: Resolv::Hosts (Ruby 2.3.7)
Description: Class : Resolv::Hosts - Ruby 2.3.7

- Home
- Core 2.3.7
- Std-lib 2.3.7
- Downloads

Support for the Ruby 2.3 series has ended. See here for reference.

### Home Classes Methods

### In Files

- resolv.rb

### Parent

Object

### Methods

- ::new
- #each_address
- #each_name
- #getaddress
- #getaddresses
- #getname
- #getnames

### Class/Module Index

Quicksearch

- Resolv
- Resolv::DNS
- Resolv::DNS::Config
- Resolv::DNS::Config::NXDomain
- Resolv::DNS::Config::OtherResolvError
- Resolv::DNS::DecodeError
- Resolv::DNS::EncodeError
- Resolv::DNS::Name
- Resolv::DNS::Query
- Resolv::DNS::Requester
- Resolv::DNS::Requester::RequestError
- Resolv::DNS::Resource
- Resolv::DNS::Resource::ANY
- Resolv::DNS::Resource::CNAME
- Resolv::DNS::Resource::DomainName
- Resolv::DNS::Resource::Generic
- Resolv::DNS::Resource::HINFO
- Resolv::DNS::Resource::IN
- Resolv::DNS::Resource::IN::A
- Resolv::DNS::Resource::IN::AAAA
- Resolv::DNS::Resource::IN::SRV
- Resolv::DNS::Resource::IN::WKS
- Resolv::DNS::Resource::LOC
- Resolv::DNS::Resource::MINFO
- Resolv::DNS::Resource::MX
- Resolv::DNS::Resource::NS
- Resolv::DNS::Resource::PTR
- Resolv::DNS::Resource::SOA
- Resolv::DNS::Resource::TXT
- Resolv::Hosts
- Resolv::IPv4
- Resolv::IPv6
- Resolv::LOC
- Resolv::LOC::Alt
- Resolv::LOC::Coord
- Resolv::LOC::Size
- Resolv::MDNS
- Resolv::ResolvError
- Resolv::ResolvTimeout

No matching classes.

# Resolv::Hosts

Resolv::Hosts is a hostname resolver that uses the system hosts file.

### Constants

DefaultFileName

### Public Class Methods

new(filename = DefaultFileName) click to toggle source

Creates a new Resolv::Hosts, using `filename` for its data source.

                   # File resolv.rb, line 180
    def initialize(filename = DefaultFileName)
      @filename = filename
      @mutex = Mutex.new
      @initialized = nil
    end

### Public Instance Methods

each_address(name, &proc) click to toggle source

Iterates over all IP addresses for `name` retrieved from the hosts file.

                   # File resolv.rb, line 237
    def each_address(name, &proc)
      lazy_initialize
      if @name2addr.include?(name)
        @name2addr[name].each(&proc)
      end
    end

each_name(address, &proc) click to toggle source

Iterates over all hostnames for `address` retrieved from the hosts file.

                   # File resolv.rb, line 264
    def each_name(address, &proc)
      lazy_initialize
      if @addr2name.include?(address)
        @addr2name[address].each(&proc)
      end
    end

getaddress(name) click to toggle source

Gets the IP address of `name` from the hosts file.

                   # File resolv.rb, line 220
    def getaddress(name)
      each_address(name) {|address| return address}
      raise ResolvError.new("#{@filename} has no name: #{name}")
    end

getaddresses(name) click to toggle source

Gets all IP addresses for `name` from the hosts file.

                   # File resolv.rb, line 228
    def getaddresses(name)
      ret = []
      each_address(name) {|address| ret << address}
      return ret
    end

getname(address) click to toggle source

Gets the hostname of `address` from the hosts file.

                   # File resolv.rb, line 247
    def getname(address)
      each_name(address) {|name| return name}
      raise ResolvError.new("#{@filename} has no address: #{address}")
    end

getnames(address) click to toggle source

Gets all hostnames for `address` from the hosts file.

                   # File resolv.rb, line 255
    def getnames(address)
      ret = []
      each_name(address) {|name| ret << name}
      return ret
    end