Module: OpenDNS::DNSDB::Label
- Included in:
- OpenDNS::DNSDB
- Defined in:
- lib/opendns-dnsdb/dnsdb/label.rb
Constant Summary collapse
- CACHE_KEY =
'Umbrella/OpenDNS'
Instance Method Summary collapse
- #benign_names(names) ⇒ Object
- #distinct_labels(labels) ⇒ Object
- #distinct_labels_by_name(names) ⇒ Object
- #include_benign?(names) ⇒ Boolean
- #include_suspicious?(names) ⇒ Boolean
- #include_unknown?(names) ⇒ Boolean
- #is_benign?(name) ⇒ Boolean
- #is_suspicious?(name) ⇒ Boolean
- #is_unknown?(name) ⇒ Boolean
- #labels_by_name(names) ⇒ Object
- #not_benign_names(names) ⇒ Object
- #not_suspicious_names(names) ⇒ Object
- #not_unknown_names(names) ⇒ Object
- #suspicious_names(names) ⇒ Object
- #unknown_names(names) ⇒ Object
Instance Method Details
#benign_names(names) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 90 def benign_names(names) labels = labels_by_name(names) labels = [ labels ] unless labels.kind_of?(Enumerable) names = labels.select { |name, label| label == :benign }.keys Response::Distinct.new(names) end |
#distinct_labels(labels) ⇒ Object
9 10 11 12 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 9 def distinct_labels(labels) return [ labels ] unless labels.kind_of?(Hash) Response::Distinct.new(labels.values.flatten.uniq) end |
#distinct_labels_by_name(names) ⇒ Object
34 35 36 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 34 def distinct_labels_by_name(names) distinct_labels(labels_by_name(names)) end |
#include_benign?(names) ⇒ Boolean
46 47 48 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 46 def include_benign?(names) distinct_labels_by_name(names).include?(:benign) end |
#include_suspicious?(names) ⇒ Boolean
38 39 40 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 38 def include_suspicious?(names) distinct_labels_by_name(names).include?(:suspicious) end |
#include_unknown?(names) ⇒ Boolean
54 55 56 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 54 def include_unknown?(names) distinct_labels_by_name(names).include?(:unknown) end |
#is_benign?(name) ⇒ Boolean
50 51 52 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 50 def is_benign?(name) include_benign?(name) end |
#is_suspicious?(name) ⇒ Boolean
42 43 44 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 42 def is_suspicious?(name) include_suspicious?(name) end |
#is_unknown?(name) ⇒ Boolean
58 59 60 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 58 def is_unknown?(name) include_unknown?(name) end |
#labels_by_name(names) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 14 def labels_by_name(names) names_is_array = names.kind_of?(Enumerable) names = [ names ] unless names_is_array multi = query_multi names_json = MultiJson.dump(names) cacheid = SipHash::digest(CACHE_KEY, names_json).to_s(16) url = "/infected/names/#{cacheid}.json" query = query_handler(url, :get, { body: names_json }) multi.queue(query) multi.run responses = MultiJson.load(query.response.body) responses = responses['scores'] responses.each_pair do |name, label| responses[name] = [:suspicious, :unknown, :benign][label + 1] end responses = Response::HashByName[responses] responses = responses.values.first unless names_is_array responses end |
#not_benign_names(names) ⇒ Object
97 98 99 100 101 102 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 97 def not_benign_names(names) labels = labels_by_name(names) labels = [ labels ] unless labels.kind_of?(Enumerable) names = labels.select { |name, label| label != :benign }.keys Response::Distinct.new(names) end |
#not_suspicious_names(names) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 69 def not_suspicious_names(names) labels = labels_by_name(names) labels = [ labels ] unless labels.kind_of?(Enumerable) names = labels.select { |name, label| label != :suspicious }.keys Response::Distinct.new(names) end |
#not_unknown_names(names) ⇒ Object
83 84 85 86 87 88 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 83 def not_unknown_names(names) labels = labels_by_name(names) labels = [ labels ] unless labels.kind_of?(Enumerable) names = labels.select { |name, label| label != :unknown }.keys Response::Distinct.new(names) end |
#suspicious_names(names) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 62 def suspicious_names(names) labels = labels_by_name(names) labels = [ labels ] unless labels.kind_of?(Enumerable) names = labels.select { |name, label| label == :suspicious }.keys Response::Distinct.new(names) end |
#unknown_names(names) ⇒ Object
76 77 78 79 80 81 |
# File 'lib/opendns-dnsdb/dnsdb/label.rb', line 76 def unknown_names(names) labels = labels_by_name(names) labels = [ labels ] unless labels.kind_of?(Enumerable) names = labels.select { |name, label| label == :unknown }.keys Response::Distinct.new(names) end |