class Osakana::Urlscan

Constants

BASE_URL

Public Class Methods

lookup(query, size: 100) click to toggle source
# File lib/osakana/urlscan.rb, line 27
def self.lookup(query, size: 100)
  new.lookup(query, size: size)
end

Public Instance Methods

lookup(query, size: 100) click to toggle source
# File lib/osakana/urlscan.rb, line 10
def lookup(query, size: 100)
  res = HTTP.get(BASE_URL, params: { q: query, size: size })
  return [] unless res.code == 200

  websites = []
  json = JSON.parse(res.body.to_s)
  results = json.dig("results") || []
  results.each do |item|
    domain = item.dig("page", "domain")
    ipv4 = item.dig("page", "ip")
    time = item.dig("task", "time")

    websites << Website.new(domain: domain, ipv4: ipv4, date: time)
  end
  websites
end