Class Dnsruby::Hosts
In: lib/Dnsruby/Hosts.rb
Parent: Object
Message Update ResolvError EncodeError OtherResolvError ServFail FormErr DecodeError NXRRSet YXDomain NotImp NXDomain VerifyError NotAuth YXRRSet NotZone Refused TsigError CodeMapper Types MetaTypes QTypes Nsec3HashAlgorithms Algorithms OpCode Classes ExtendedRCode Modes RCode Comparable Name RRSet TsigNotSignedResponseError Resolver SingleResolver StandardError TimeoutError ResolvTimeout DNS Dnssec Hosts RR\n[lib/Dnsruby/resource/A.rb\nlib/Dnsruby/resource/AAAA.rb\nlib/Dnsruby/resource/AFSDB.rb\nlib/Dnsruby/resource/CERT.rb\nlib/Dnsruby/resource/DHCID.rb\nlib/Dnsruby/resource/DLV.rb\nlib/Dnsruby/resource/DNSKEY.rb\nlib/Dnsruby/resource/DS.rb\nlib/Dnsruby/resource/HINFO.rb\nlib/Dnsruby/resource/HIP.rb\nlib/Dnsruby/resource/IN.rb\nlib/Dnsruby/resource/IPSECKEY.rb\nlib/Dnsruby/resource/ISDN.rb\nlib/Dnsruby/resource/KX.rb\nlib/Dnsruby/resource/LOC.rb\nlib/Dnsruby/resource/MINFO.rb\nlib/Dnsruby/resource/MX.rb\nlib/Dnsruby/resource/NAPTR.rb\nlib/Dnsruby/resource/NSAP.rb\nlib/Dnsruby/resource/NSEC.rb\nlib/Dnsruby/resource/NSEC3.rb\nlib/Dnsruby/resource/NSEC3PARAM.rb\nlib/Dnsruby/resource/OPT.rb\nlib/Dnsruby/resource/PX.rb\nlib/Dnsruby/resource/RP.rb\nlib/Dnsruby/resource/RRSIG.rb\nlib/Dnsruby/resource/RT.rb\nlib/Dnsruby/resource/SOA.rb\nlib/Dnsruby/resource/SPF.rb\nlib/Dnsruby/resource/SRV.rb\nlib/Dnsruby/resource/SSHFP.rb\nlib/Dnsruby/resource/TKEY.rb\nlib/Dnsruby/resource/TSIG.rb\nlib/Dnsruby/resource/TXT.rb\nlib/Dnsruby/resource/X25.rb\nlib/Dnsruby/resource/domain_name.rb\nlib/Dnsruby/resource/generic.rb\nlib/Dnsruby/resource/resource.rb] Recursor IPv6 IPv4 ZoneTransfer MessageDecoder MessageEncoder Question Header TheLog ValidatorThread PacketSender ResolverRuby Config KeyCache Cache SingleVerifier SelectThread Resolv ZoneReader lib/Dnsruby/DNS.rb lib/Dnsruby/dnssec.rb lib/Dnsruby/Hosts.rb lib/Dnsruby/resource/generic.rb lib/Dnsruby/Recursor.rb lib/Dnsruby/update.rb lib/Dnsruby/ipv6.rb lib/Dnsruby/ipv4.rb lib/Dnsruby/code_mapper.rb lib/Dnsruby/zone_transfer.rb lib/Dnsruby/message.rb lib/Dnsruby/TheLog.rb lib/Dnsruby/resource/resource.rb lib/Dnsruby/validator_thread.rb lib/Dnsruby/PacketSender.rb lib/Dnsruby/Resolver.rb lib/Dnsruby/Config.rb lib/Dnsruby/key_cache.rb lib/Dnsruby/Cache.rb lib/Dnsruby/single_verifier.rb lib/Dnsruby/SingleResolver.rb lib/Dnsruby/select_thread.rb lib/Dnsruby/name.rb lib/dnsruby.rb lib/Dnsruby/resource/TKEY.rb lib/Dnsruby/zone_reader.rb Dnsruby dot/m_61_0.png

Dnsruby::Hosts class

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

class methods

methods

Methods

Constants

DefaultFileName = Win32::Resolv.get_hosts_path
DefaultFileName = '/etc/hosts'

Public Class methods

Creates a new Dnsruby::Hosts using filename for its data source

[Source]

    # File lib/Dnsruby/Hosts.rb, line 43
43:     def initialize(filename = DefaultFileName)
44:       @filename = filename
45:       @mutex = Mutex.new
46:       @initialized = nil
47:     end

Public Instance methods

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

[Source]

     # File lib/Dnsruby/Hosts.rb, line 98
 98:     def each_address(name, &proc)
 99:       lazy_initialize
100:       if @name2addr.include?(name)
101:         @name2addr[name].each(&proc)
102:       end
103:     end

Iterates over all hostnames for address retrieved from the hosts file

[Source]

     # File lib/Dnsruby/Hosts.rb, line 119
119:     def each_name(address, &proc)
120:       lazy_initialize
121:       if @addr2name.include?(address)
122:         @addr2name[address].each(&proc)
123:       end
124:     end

Gets the first IP address for name from the hosts file

[Source]

    # File lib/Dnsruby/Hosts.rb, line 85
85:     def getaddress(name)
86:       each_address(name) {|address| return address}
87:       raise ResolvError.new("#{@filename} has no name: #{name}")
88:     end

Gets all IP addresses for name from the hosts file

[Source]

    # File lib/Dnsruby/Hosts.rb, line 91
91:     def getaddresses(name)
92:       ret = []
93:       each_address(name) {|address| ret << address}
94:       return ret
95:     end

Gets the first hostname of address from the hosts file

[Source]

     # File lib/Dnsruby/Hosts.rb, line 106
106:     def getname(address)
107:       each_name(address) {|name| return name}
108:       raise ResolvError.new("#{@filename} has no address: #{address}")
109:     end

Gets all hostnames for address from the hosts file

[Source]

     # File lib/Dnsruby/Hosts.rb, line 112
112:     def getnames(address)
113:       ret = []
114:       each_name(address) {|name| ret << name}
115:       return ret
116:     end

[Validate]