working through 14.4

This commit is contained in:
Dan Buch 2011-07-25 22:36:02 -04:00
parent ea74004d4e
commit e69ebabc5f
3 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,29 @@
require 'resolv'
require 'resolv-replace'
def multiple_lookup(*names)
dns = Resolv::DNS.new
results = {}
threads = []
names.each do |name|
threads << Thread.new(name) do |name|
begin
dns.each_address(name) { |a| (results[name] ||= []) << a }
rescue Resolv::ResolvError
results[name] = nil
end
end
end
threads.each { |t| t.join }
return results
end
domains = ("a".."z").collect { |l| l + '.com' }
multiple_lookup(*domains).sort.each do |name, addresses|
if addresses
puts "#{name}: #{addresses.size} " + \
"address#{addresses.size == 1 ? "" : "es"}"
end
end

View File

@ -0,0 +1,11 @@
require 'resolv'
dns = Resolv::DNS.new
domain = "oreilly.com"
dns.each_resource(domain, Resolv::DNS::Resource::IN::MX) do |mail_server|
puts mail_server.exchange
end
dns.each_resource(domain, Resolv::DNS::Resource::IN::NS) do |nameserver|
puts nameserver.name
end

3
cookbook/014/04.rb Normal file
View File

@ -0,0 +1,3 @@
require 'resolv'
Resolv::DNS.new.each_address('oreilly.com') { |addr| puts addr }