class Ukemi::Services::OTX
Private Instance Methods
api_key()
click to toggle source
# File lib/ukemi/services/otx.rb, line 15 def api_key @api_key ||= ENV["OTX_API_KEY"] end
config_keys()
click to toggle source
# File lib/ukemi/services/otx.rb, line 11 def config_keys %w[OTX_API_KEY] end
domain_client()
click to toggle source
# File lib/ukemi/services/otx.rb, line 19 def domain_client @domain_client ||= ::OTX::Domain.new(api_key) end
ip_client()
click to toggle source
# File lib/ukemi/services/otx.rb, line 23 def ip_client @ip_client ||= ::OTX::IP.new(api_key) end
lookup_by_domain(data)
click to toggle source
# File lib/ukemi/services/otx.rb, line 48 def lookup_by_domain(data) records = domain_client.get_passive_dns(data) memo = Hash.new { |h, k| h[k] = [] } records.each do |record| next if record.record_type != "A" next if record.hostname != data ip = record.address memo[ip] << Date.parse(record.last).to_s memo[ip] << Date.parse(record.first).to_s end memo.keys.map do |ip| Record.new( data: ip, first_seen: memo[ip].min, last_seen: memo[ip].max, source: name ) end end
lookup_by_ip(data)
click to toggle source
# File lib/ukemi/services/otx.rb, line 27 def lookup_by_ip(data) records = ip_client.get_passive_dns(data) memo = Hash.new { |h, k| h[k] = [] } records.each do |record| next if record.record_type != "A" domain = record.hostname memo[domain] << Date.parse(record.last).to_s memo[domain] << Date.parse(record.first).to_s end memo.keys.map do |domain| Record.new( data: domain, first_seen: memo[domain].min, last_seen: memo[domain].max, source: name ) end end