Ruby Resolv Lookup通过URL数组循环

时间:2014-07-01 15:21:54

标签: ruby dns resolve resolv

这里相当新的程序员,我一直在黑客和谷歌上搜索一个星期。

以下是我正在尝试做的逻辑:

输入URL的.txt文件并将这些URL修剪到根域。然后检查是否存在这些根域的DNS记录。然后在没有DNS记录的域上进行whois查找。然后打印出可用的域。

第二部分 - 检查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

当我使用10个URL的简单test.txt文件运行时,我收到如下错误消息:

/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 ,而我尝试过的此脚本的其他变体给出了带引号的错误消息。

是的,尽管如此,这可能是货物崇拜节目的附件A.

我意识到我是新人,而且我可能会犯一些简单的系统性错误。因此,如果有人能够指出我正确的方向,我会真的非常感谢它!

干杯, 凯尔

P.S。很长时间的SO读者,第一次来电。

0 个答案:

没有答案