| Class | Resolv::Hosts |
| In: |
lib/resolv.rb
|
| Parent: | Object |
DNS::Hosts is a hostname resolver that uses the system hosts file.
| DefaultFileName | = | Win32::Resolv.get_hosts_path |
| DefaultFileName | = | '/etc/hosts' |
Creates a new DNS::Hosts, using filename for its data source.
# File lib/resolv.rb, line 178
178: def initialize(filename = DefaultFileName)
179: @filename = filename
180: @mutex = Mutex.new
181: @initialized = nil
182: end
Iterates over all IP addresses for name retrieved from the hosts file.
# File lib/resolv.rb, line 235
235: def each_address(name, &proc)
236: lazy_initialize
237: if @name2addr.include?(name)
238: @name2addr[name].each(&proc)
239: end
240: end
Iterates over all hostnames for address retrieved from the hosts file.
# File lib/resolv.rb, line 262
262: def each_name(address, &proc)
263: lazy_initialize
264: if @addr2name.include?(address)
265: @addr2name[address].each(&proc)
266: end
267: end
Gets the IP address of name from the hosts file.
# File lib/resolv.rb, line 218
218: def getaddress(name)
219: each_address(name) {|address| return address}
220: raise ResolvError.new("#{@filename} has no name: #{name}")
221: end
Gets all IP addresses for name from the hosts file.
# File lib/resolv.rb, line 226
226: def getaddresses(name)
227: ret = []
228: each_address(name) {|address| ret << address}
229: return ret
230: end
Gets the hostname of address from the hosts file.
# File lib/resolv.rb, line 245
245: def getname(address)
246: each_name(address) {|name| return name}
247: raise ResolvError.new("#{@filename} has no address: #{address}")
248: end