guilhermeteodoro
7/29/2014 - 1:46 PM

DNS checking through Ruby

DNS checking through Ruby

require 'resolv'
require 'benchmark'

domain_list = %w(gmail.com yahoo.com yahoo.com.br ymail.com rocketmail.com
  bol.com.br hotmail.com hotmail.com.br live.com msn.com ig.com.br globomail.com
  oi.com.br pop.com.br inteligweb.com.br r7.com folha.com.br zipmail.com.br email-errado-blabla.com.br)

dns = Resolv::DNS.new

bm = Benchmark.measure {
  domain_list.each do |domain|
    puts "Resolving MX records for #{ domain }..."
    mx_records = dns.getresources domain, Resolv::DNS::Resource::IN::MX

    if mx_records.empty?
      puts "No MX records for #{ domain }. Skipping it."
      puts '-'*50
      next
    else
      mx_records.each{ |mx| puts mx.exchange.to_s }
      puts '>>>>>>>>>> OK!'
    end

    puts '-'*50
  end
}

puts '********** TOTAL TIME ***********'
puts bm