Module: OpenDNS::DNSDB::ByName
Instance Method Summary collapse
- #cnames_by_name(names) ⇒ Object
- #cnames_history_by_name(names) ⇒ Object
- #distinct_cnames_by_name(names) ⇒ Object
- #distinct_ips_by_name(names) ⇒ Object
- #distinct_mxs_by_name(names) ⇒ Object
- #distinct_nameservers_ips_by_name(names) ⇒ Object
- #history_by_name(names, type) ⇒ Object
- #ips_by_name(names) ⇒ Object
- #ips_history_by_name(names) ⇒ Object
- #mxs_by_name(names) ⇒ Object
- #mxs_history_by_name(names) ⇒ Object
- #nameservers_ips_by_name(names) ⇒ Object
- #nameservers_ips_history_by_name(names) ⇒ Object
- #rr_only_for_names(responses) ⇒ Object
Methods included from RRUtils
Instance Method Details
#cnames_by_name(names) ⇒ Object
84 85 86 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 84 def cnames_by_name(names) rr_only_for_names(cnames_history_by_name(names)) end |
#cnames_history_by_name(names) ⇒ Object
80 81 82 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 80 def cnames_history_by_name(names) history_by_name(names, 'cname') end |
#distinct_cnames_by_name(names) ⇒ Object
88 89 90 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 88 def distinct_cnames_by_name(names) distinct_rrs(cnames_by_name(names)) end |
#distinct_ips_by_name(names) ⇒ Object
64 65 66 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 64 def distinct_ips_by_name(names) distinct_rrs(ips_by_name(names)) end |
#distinct_mxs_by_name(names) ⇒ Object
76 77 78 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 76 def distinct_mxs_by_name(names) distinct_rrs(mxs_by_name(names)) end |
#distinct_nameservers_ips_by_name(names) ⇒ Object
52 53 54 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 52 def distinct_nameservers_ips_by_name(names) Response::Distinct.new(distinct_rrs(nameservers_ips_by_name(names))) end |
#history_by_name(names, 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_name.rb', line 21 def history_by_name(names, type) names_is_array = names.kind_of?(Enumerable) names = [ names ] unless names_is_array multi = query_multi queries = { } names.each do |name| next if queries[name] url = "/dnsdb/name/#{type}/#{name}.json" query = query_handler(url) multi.queue(query) queries[name] = query end multi.run responses = { } queries.each_pair do |name, query| obj = MultiJson.load(query.response.body) responses[name] = Response::Raw.new(obj).rrs_tf end responses = Response::HashByName[responses] responses = responses.values.first unless names_is_array responses end |
#ips_by_name(names) ⇒ Object
60 61 62 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 60 def ips_by_name(names) rr_only_for_names(ips_history_by_name(names)) end |
#ips_history_by_name(names) ⇒ Object
56 57 58 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 56 def ips_history_by_name(names) history_by_name(names, 'a') end |
#mxs_by_name(names) ⇒ Object
72 73 74 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 72 def mxs_by_name(names) rr_only_for_names(mxs_history_by_name(names)) end |
#mxs_history_by_name(names) ⇒ Object
68 69 70 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 68 def mxs_history_by_name(names) history_by_name(names, 'mx') end |
#nameservers_ips_by_name(names) ⇒ Object
48 49 50 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 48 def nameservers_ips_by_name(names) rr_only_for_names(nameservers_ips_history_by_name(names)) end |
#nameservers_ips_history_by_name(names) ⇒ Object
44 45 46 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 44 def nameservers_ips_history_by_name(names) history_by_name(names, 'ns') end |
#rr_only_for_names(responses) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/opendns-dnsdb/dnsdb/by_name.rb', line 9 def rr_only_for_names(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 |hrecord| hrecord.rrs.collect { |rr| rr.rr } end.flatten.uniq) end responses = responses.values.first unless responses_is_hash responses end |