📄 03 - performing dns queries.rb
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -