Module: Reversed

Defined in:
lib/reversed.rb,
lib/reversed/version.rb

Constant Summary collapse

VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.lookup(ip, timeout: 5, nameservers: nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/reversed.rb', line 5

def self.lookup(ip, timeout: 5, nameservers: nil)
  ip = ip.to_s
  unless ip.empty?
    options = {
      retry: 3,
      udp_timeout: timeout
    }
    options[:nameservers] = nameservers if nameservers
    begin
      resolver = Net::DNS::Resolver.new(options).search(ip)
      answer = resolver.answer.first || resolver.authority.first
      if answer && !answer.value.empty?
        answer.value.split(" ").first[0..-2]
      end
    rescue Net::DNS::Resolver::NoResponseError
      nil
    end
  end
end