Sha256: b458ffd7b83a5daa668cac0575904d8e189b43a231e9a1f57d3640d16434b576
Contents?: true
Size: 940 Bytes
Versions: 1
Compression:
Stored size: 940 Bytes
Contents
require "reversed/version" require "net/dns" require "ipaddr" module Reversed def self.lookup(ip, timeout: 5, nameservers: nil) ip = ip.to_s unless ip.empty? begin # ensure valid ip ip = IPAddr.new(ip) rescue IPAddr::InvalidAddressError raise ArgumentError, "Invalid IP" end options = { retry_number: 3, udp_timeout: timeout } options[:nameservers] = nameservers if nameservers begin resolver = Net::DNS::Resolver.new(options).search(ip.reverse, Net::DNS::PTR) 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 rescue Errno::EAFNOSUPPORT options[:use_tcp] = true options[:tcp_timeout] = timeout retry end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reversed-0.3.0 | lib/reversed.rb |