class Ukemi::Services::DNSDB
Private Instance Methods
api()
click to toggle source
# File lib/ukemi/services/dnsdb.rb, line 15 def api @api ||= ::DNSDB::API.new end
config_keys()
click to toggle source
# File lib/ukemi/services/dnsdb.rb, line 11 def config_keys %w[DNSDB_API_KEY] end
lookup_by_domain(data)
click to toggle source
# File lib/ukemi/services/dnsdb.rb, line 34 def lookup_by_domain(data) results = api.lookup.rrset(owner_name: data, rrtype: "A") results.map do |result| first_seen = Time.at(result["time_first"]).to_date.to_s last_seen = Time.at(result["time_last"]).to_date.to_s values = result["rdata"] || [] values.map do |value| Record.new( data: value, first_seen: first_seen, last_seen: last_seen, source: name ) end end.flatten end
lookup_by_ip(data)
click to toggle source
# File lib/ukemi/services/dnsdb.rb, line 19 def lookup_by_ip(data) results = api.lookup.rdata(type: "ip", value: data, rrtype: "A") results.map do |result| rrname = result["rrname"] # Remove the last dot (e.g. "example.com.") data = rrname[0..-2] Record.new( data: data, first_seen: Time.at(result["time_first"]).to_date.to_s, last_seen: Time.at(result["time_last"]).to_date.to_s, source: name ) end end