module PeepRBL

Constants

RBLS

Public Class Methods

display(rbl, listed) click to toggle source
# File lib/peeprbl.rb, line 77
def self.display(rbl, listed)
  if listed
    puts rbl[0] + " LISTED!".red
  else
    puts rbl[0] + " PASS".green
  end
end
report(options) click to toggle source
# File lib/peeprbl.rb, line 85
def self.report(options)

  mail_server_ip = options[:mail_server_ip]
         display = options[:display]

  blacklist_report = {}


  rbl_fqdns = RBLS.map {|rbl| [rbl, reverse_ip(mail_server_ip) + '.' + rbl] }

  Resolv::DNS.open do |dns|
    dns.timeouts = 2
    rbl_fqdns.each do |rbl|
      begin
        blacklist_report[rbl[0]] = dns.getaddress(rbl[1])
      rescue
        display(rbl, false) if options[:display]
      else
        display(rbl, true) if options[:display]
        blacklist_report[rbl[0]] = true
      end
    end
  end

  return blacklist_report
end
reverse_ip(ip) click to toggle source
# File lib/peeprbl.rb, line 73
def self.reverse_ip(ip)
  ip.split('.').reverse!.join('.')
end