03 - performing dns queries.rb

来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 50 行

RB
50
字号
require 'resolv'Resolv::DNS.new.each_address("oreilly.com") { |addr| puts addr }# 208.201.239.36# 208.201.239.37#---dns = Resolv::DNS.newdomain = "oreilly.com"dns.each_resource(domain, Resolv::DNS::Resource::IN::MX) do |mail_server|  puts mail_server.exchangeend# smtp1.oreilly.com# smtp2.oreilly.comdns.each_resource(domain, Resolv::DNS::Resource::IN::NS) do |nameserver|  puts nameserver.nameend# a.auth-ns.sonic.net# b.auth-ns.sonic.net# c.auth-ns.sonic.net# ns.oreilly.com#---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 resultsenddomains = ("a".."z").collect { |l| l + '.com' }multiple_lookup(*domains).each do |name, addresses|  if addresses    puts "#{name}: #{addresses.size} address#{addresses.size == 1 ? "" : "es"}"  endend# x.com: 4 addresses# z.com: 1 address# q.com: 1 address#---

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?