module DNSCheck::DNS

Public Instance Methods

get_cname_record(hostname) click to toggle source
# File lib/dns-check/dns.rb, line 19
def get_cname_record hostname
  @query.getresource(hostname, Resolv::DNS::Resource::IN::CNAME).name.to_s
rescue
  hostname
end
lookup(hostname) click to toggle source
# File lib/dns-check/dns.rb, line 25
def lookup hostname
  Timeout::timeout(@timeout) do
    record = get_cname_record hostname
    if DNSCheck.config[:no_recursion] && (record != hostname)
      return record.colorize_to(:green)
    end

    resolved_ip = @query.getresource(record, Resolv::DNS::Resource::IN::A).address.to_s
    resolved_ip.to_s.colorize_to(:green)
  end
rescue Timeout::Error
  "Nameserver Timeout".colorize_to(:red)
rescue => e
  e.message.colorize_to(:red)
end
nameservers=(ns) click to toggle source
# File lib/dns-check/dns.rb, line 12
def nameservers= ns
  @query = Resolv::DNS.new(
    :nameserver => ns,
    :ndots => 1
  )
end
timeout=(sec) click to toggle source
# File lib/dns-check/dns.rb, line 8
def timeout= sec
  @timeout = sec
end