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
|