class Aquatone::Collectors::Dnsdb

Constants

INDEX_REGEX

Public Instance Methods

run() click to toggle source
# File lib/aquatone/collectors/dnsdb.rb, line 13
def run
  @base_url = "http://www.dnsdb.org/f/#{url_escape(domain.name)}.dnsdb.org/"
  parse_page(@base_url)
end

Private Instance Methods

extract_hosts(body) click to toggle source
# File lib/aquatone/collectors/dnsdb.rb, line 36
def extract_hosts(body)
  body.scan(LINK_REGEX) do |href, hostname|
    if hostname.end_with?(".#{domain.name}")
      add_host(hostname)
    end
  end
end
parse_page(url) click to toggle source
# File lib/aquatone/collectors/dnsdb.rb, line 20
def parse_page(url)
  response = get_request(url)
  if response.code != 200
    failure("DNSDB returned unexpected response code: #{response.code}")
  end

  if response.body.include?("index for")
    response.body.scan(INDEX_REGEX) do |index|
      response = get_request("#{@base_url}#{url_escape(index.first)}")
      extract_hosts(response.body)
    end
  else
    extract_hosts(response.body)
  end
end