# frozen_string_literal: true require "http" require "json" require "zlib" ENDPOINT = "https://dnpedia.com/tlds/ajax.php" DEFAULT_HEADERS = { "Accept-Encoding" => "gzip", "Referer" => "https://dnpedia.com/tlds/monitor.php", "X-Requested-With" => "XMLHttpRequest", }.freeze def find_possible_phishing_domains(keyword) params = { cmd: "search", m: "mon", columns: "id,name,zoneid,length,idn,thedate,ipv4,ipasname,ipasnumber,ipchecked,", ecf: "name", ecv: "~%#{keyword}%", days: "1", mode: "added", _search: "false", rows: "500", page: "1", sidx: "length", sord: "asc" } res = HTTP.headers(DEFAULT_HEADERS).get(ENDPOINT, params: params) return {} unless res.code == 200 sio = StringIO.new(res.body) gz = Zlib::GzipReader.new(sio) page = gz.read JSON.parse page end p find_possible_phishing_domains("sagawa")