Skip to content

Instantly share code, notes, and snippets.

@dkarter
Created May 5, 2018 08:40
Show Gist options
  • Save dkarter/a5bbc36ad228e40961fdf8476977374b to your computer and use it in GitHub Desktop.
Save dkarter/a5bbc36ad228e40961fdf8476977374b to your computer and use it in GitHub Desktop.
# frozen_string_literal: true
require 'whois'
require 'whois-parser'
words = File.readlines('/usr/share/dict/words')
whois = Whois::Client.new(timeout: 10)
domains = words
.map(&:downcase)
.uniq
.map do |word|
word = word.strip
next if word.size > 3 || word.size == 1
domain = "#{word}.com"
print "Checking #{domain}"
begin
record = whois.lookup(domain)
parser = record.parser
puts parser.available? ? ' available' : ' taken'
{
domain: domain,
registered: parser.registered?,
available: parser.available?
}
rescue StandardError => e
puts "Failed: #{e.message}"
{
domain: domain,
registered: 'error',
available: 'error'
}
end
end
File.open('result.txt', 'w+') do |f|
f.puts(domains.compact)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment