Skip to content

Instantly share code, notes, and snippets.

@pchaigno
Last active August 29, 2015 14:23

Revisions

  1. pchaigno revised this gist Jul 12, 2015. 1 changed file with 13 additions and 10 deletions.
    23 changes: 13 additions & 10 deletions test_mx.rb
    Original file line number Diff line number Diff line change
    @@ -30,19 +30,22 @@ def check_domain(domain)

    failed = 0
    tot = 0
    start = false
    Swot.each_domain { |domain|
    begin
    if check_domain(domain.domain)
    puts "Seems okay: #{domain}"
    else
    puts "No record: #{domain}"
    failed += 1
    if domain.to_s
    begin
    if check_domain(domain.to_s)
    puts "Seems okay: #{domain}"
    else
    puts "No record: #{domain}"
    failed += 1
    end
    rescue => e
    puts "Error: #{domain}"
    raise
    end
    rescue => e
    puts "Error: #{domain}"
    raise
    tot += 1
    end
    tot += 1
    }

    puts "Failed: #{failed}/#{tot}"
  2. pchaigno revised this gist Jul 5, 2015. 1 changed file with 5 additions and 10 deletions.
    15 changes: 5 additions & 10 deletions test_mx.rb
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,9 @@ def resolve_mx(domain)
    def resolve_a(domain)
    mxs = Resolv::DNS.open do |dns|
    ress = dns.getresources(domain, Resolv::DNS::Resource::IN::A)
    ress.map { |r| r.exchange.to_s }
    ress.map { |r|
    r.address
    }
    end
    return mxs
    end
    @@ -22,14 +24,7 @@ def check_domain(domain)
    www_domain = "www.#{domain}"
    mx_domain = "mx.#{domain}"
    mail_domain = "mail.#{domain}"
    return resolve_mx(domain).length > 0
    || resolve_a(domain).length > 0
    || resolve_mx(www_domain).length > 0
    || resolve_a(www_domain).length > 0
    || resolve_mx(mx_domain).length > 0
    || resolve_a(mx_domain).length > 0
    || resolve_mx(mail_domain).length > 0
    || resolve_a(mail_domain).length > 0
    return resolve_mx(domain).length > 0 || resolve_a(domain).length > 0 || resolve_a(www_domain).length > 0 || resolve_mx(mx_domain).length > 0 || resolve_mx(mail_domain).length > 0
    end


    @@ -40,7 +35,7 @@ def check_domain(domain)
    if check_domain(domain.domain)
    puts "Seems okay: #{domain}"
    else
    puts "No MX record: #{domain}"
    puts "No record: #{domain}"
    failed += 1
    end
    rescue => e
  3. pchaigno revised this gist Jul 3, 2015. 1 changed file with 11 additions and 1 deletion.
    12 changes: 11 additions & 1 deletion test_mx.rb
    Original file line number Diff line number Diff line change
    @@ -19,7 +19,17 @@ def resolve_a(domain)
    end

    def check_domain(domain)
    return resolve_mx(domain).length > 0 || resolve_a(domain).length > 0
    www_domain = "www.#{domain}"
    mx_domain = "mx.#{domain}"
    mail_domain = "mail.#{domain}"
    return resolve_mx(domain).length > 0
    || resolve_a(domain).length > 0
    || resolve_mx(www_domain).length > 0
    || resolve_a(www_domain).length > 0
    || resolve_mx(mx_domain).length > 0
    || resolve_a(mx_domain).length > 0
    || resolve_mx(mail_domain).length > 0
    || resolve_a(mail_domain).length > 0
    end


  4. pchaigno revised this gist Jul 3, 2015. 1 changed file with 9 additions and 4 deletions.
    13 changes: 9 additions & 4 deletions test_mx.rb
    Original file line number Diff line number Diff line change
    @@ -10,11 +10,16 @@ def resolve_mx(domain)
    return mxs
    end

    def resolve_a(domain)
    mxs = Resolv::DNS.open do |dns|
    ress = dns.getresources(domain, Resolv::DNS::Resource::IN::A)
    ress.map { |r| r.exchange.to_s }
    end
    return mxs
    end

    def check_domain(domain)
    resolve_mx(domain).each { |smtp_server|
    return true
    }
    return false
    return resolve_mx(domain).length > 0 || resolve_a(domain).length > 0
    end


  5. pchaigno created this gist Jun 28, 2015.
    38 changes: 38 additions & 0 deletions test_mx.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    require 'helper'
    require 'net/smtp'
    require 'resolv'

    def resolve_mx(domain)
    mxs = Resolv::DNS.open do |dns|
    ress = dns.getresources(domain, Resolv::DNS::Resource::IN::MX)
    ress.map { |r| r.exchange.to_s }
    end
    return mxs
    end

    def check_domain(domain)
    resolve_mx(domain).each { |smtp_server|
    return true
    }
    return false
    end


    failed = 0
    tot = 0
    Swot.each_domain { |domain|
    begin
    if check_domain(domain.domain)
    puts "Seems okay: #{domain}"
    else
    puts "No MX record: #{domain}"
    failed += 1
    end
    rescue => e
    puts "Error: #{domain}"
    raise
    end
    tot += 1
    }

    puts "Failed: #{failed}/#{tot}"