Ruby Resolv Lookup просматривает массив URL-адресов
Здесь довольно новый программист, и я целую неделю взламывал и гуглял в этом.
Вот логика того, что я пытаюсь сделать:
Введите.txt файл URL-адресов и обрежьте эти URL-адреса до корневого домена. Затем проверьте, существует ли запись DNS для этих корневых доменов. Затем выполните поиск whois на доменах без записи DNS. Затем распечатайте доступные домены.
Вторая часть этого - проверка DNS-записей - сильно озадачила меня.
Вот мой код:
# encoding: utf-8
require 'domainatrix'
require 'addressable/uri'
#require 'Whois'
require 'Resolv'
urls = Array.new
cleaned = Array.new
urls = File.readlines(*ARGV)
urls.each do |url|
url = url.to_s
url = Domainatrix.parse(url)
cleaned << url.domain_with_tld
end
cleaned.uniq!
# puts cleaned
cleaned.each do |url|
url = url.to_s
Resolv.getaddress(url)
end
Когда я запускаю это с простым файлом test.txt из 10 URL, я получаю сообщение об ошибке, подобное этому:
/usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/Resolv.rb:93:in `getaddress': no address for google.com (Resolv::ResolvError)
from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/Resolv.rb:43:in `getaddress'
from rocker_two.rb:26:in `block in <main>'
from rocker_two.rb:24:in `each'
from rocker_two.rb:24:in `<main>'
Теперь, если я перепрыгну через irb и сделаю что-то простое:
>> Resolv.getaddress "google.com"
=> "173.194.43.4"
Работает нормально.
Мне кажется, проблема в том, чтобы заставить Resolv принимать каждый объект в массиве как строку? Я говорю это, потому что сообщение об ошибке, которое я получаю при запуске файлового скрипта, не содержит google.com в кавычках, тогда как другие варианты этого скрипта, которые я пробовал, выдают сообщение об ошибке с кавычками.
Да, тем не менее, это, вероятно, Приложение А для программирования культа грузов.
Я понимаю, что я новичок, и, возможно, я совершаю простую системную ошибку. Так что, если бы кто-то мог просто указать мне правильное направление для выбора правильного пути, я был бы очень, очень признателен!
Ура, Кайл
PS Долгое время ТАК читатель, впервые звонящий.