这里是相当新的程序员,我已经在这方面进行了黑客攻击和谷歌搜索一个星期。
这是我正在尝试做的逻辑:
输入 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。
我意识到我是新手,我可能犯了一些简单的系统性错误。因此,如果有人能指出我正确的方向,让我走上正确的道路,我会非常非常感激!
干杯,凯尔
PS 长期阅读SO,第一次来电。