Module: DNSCheck::DNS

Included in:
DNSCheck
Defined in:
lib/dns-check/dns.rb

Instance Method Summary collapse

Instance Method Details

#get_cname_record(hostname) ⇒ Object



20
21
22
23
24
# File 'lib/dns-check/dns.rb', line 20

def get_cname_record hostname
  @query.getresource(hostname, Resolv::DNS::Resource::IN::CNAME).name.to_s
rescue
  hostname
end

#lookup(hostname) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/dns-check/dns.rb', line 26

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) ⇒ Object



13
14
15
16
17
18
# File 'lib/dns-check/dns.rb', line 13

def nameservers= ns
  @query = Resolv::DNS.new(
    :nameserver => ns,
    :ndots => 1
  )
end

#timeout=(sec) ⇒ Object



9
10
11
# File 'lib/dns-check/dns.rb', line 9

def timeout= sec
  @timeout = sec
end