resolver.rb 606 B

12345678910111213141516171819202122232425262728293031323334353637
  1. require 'rubydns'
  2. require 'rubydns/system'
  3. class Resolver
  4. def resolve(domains=[])
  5. return false if domains.empty?
  6. resolver = RubyDNS::Resolver.new(RubyDNS::System::nameservers)
  7. dead = []
  8. alive = []
  9. EventMachine::run do
  10. domains.each do |domain|
  11. resolver.query(domain) do |response|
  12. if response.answer.blank?
  13. dead << domain
  14. else
  15. alive << domain
  16. end
  17. end
  18. end
  19. EventMachine::stop
  20. end
  21. results = {}
  22. results[:dead] = dead
  23. results[:alive] = alive
  24. results
  25. end
  26. end