Module: OpenDNS::DNSDB::ByIP
Instance Method Summary collapse
- #distinct_names_by_ip(ips) ⇒ Object
- #distinct_names_by_nameserver_ip(ips) ⇒ Object
- #history_by_ip(ips, type) ⇒ Object
- #names_by_ip(ips) ⇒ Object
- #names_by_nameserver_ip(ips) ⇒ Object
- #names_history_by_ip(ips) ⇒ Object
- #names_history_by_nameserver_ip(ips) ⇒ Object
- #rr_only_for_ips(responses) ⇒ Object
Methods included from RRUtils
Instance Method Details
#distinct_names_by_ip(ips) ⇒ Object
64 65 66 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 64 def distinct_names_by_ip(ips) distinct_rrs(names_by_ip(ips)) end |
#distinct_names_by_nameserver_ip(ips) ⇒ Object
52 53 54 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 52 def distinct_names_by_nameserver_ip(ips) distinct_rrs(names_by_nameserver_ip(ips)) end |
#history_by_ip(ips, type) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 21 def history_by_ip(ips, type) ips_is_array = ips.kind_of?(Enumerable) ips = [ ips ] unless ips_is_array multi = query_multi queries = { } ips.each do |ip| next if queries[ip] url = "/dnsdb/ip/#{type}/#{ip}.json" query = query_handler(url) multi.queue(query) queries[ip] = query end multi.run responses = { } queries.each_pair do |ip, query| obj = MultiJson.load(query.response.body) responses[ip] = Response::Raw.new(obj).rrs end responses = Response::HashByIP[responses] responses = responses.values.first unless ips_is_array responses end |
#names_by_ip(ips) ⇒ Object
60 61 62 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 60 def names_by_ip(ips) rr_only_for_ips(names_history_by_ip(ips)) end |
#names_by_nameserver_ip(ips) ⇒ Object
48 49 50 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 48 def names_by_nameserver_ip(ips) rr_only_for_ips(names_history_by_nameserver_ip(ips)) end |
#names_history_by_ip(ips) ⇒ Object
56 57 58 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 56 def names_history_by_ip(ips) history_by_ip(ips, 'a') end |
#names_history_by_nameserver_ip(ips) ⇒ Object
44 45 46 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 44 def names_history_by_nameserver_ip(ips) history_by_ip(ips, 'ns') end |
#rr_only_for_ips(responses) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/opendns-dnsdb/dnsdb/by_ip.rb', line 9 def rr_only_for_ips(responses) responses_is_hash = responses.kind_of?(Hash) responses = { a: responses } unless responses_is_hash responses.each_pair do |key, history| responses[key] = Response::Distinct.new(history.collect do |rr| rr.rr end.flatten.uniq) end responses = responses.values.first unless responses_is_hash responses end |