| Class | Dnsruby::Hosts |
| In: |
lib/Dnsruby/Hosts.rb
|
| Parent: | Object |
Dnsruby::Hosts is a hostname resolver that uses the system hosts file
address lookup methods.
hostnames lookup methods.
| DefaultFileName | = | Win32::Resolv.get_hosts_path |
| DefaultFileName | = | '/etc/hosts' |
Creates a new Dnsruby::Hosts using filename for its data 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
Iterates over all IP addresses for name retrieved from the hosts file
# 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
# 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
# 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
# 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
# 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