这里相当新的程序员,我一直在黑客和谷歌上搜索一个星期。
以下是我正在尝试做的逻辑:
输入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读者,第一次来电。