正在尝试使用Ruby进行区域传输?
我想知道如何使用Ruby执行区域传输,利用所有发现的名称服务器 我下面的代码不起作用。如果有更好的方法,一定要告诉我。我熟悉像Net::DNS这样的gems,但如果可能的话,我希望将其作为一个系统命令 用户输入:正在尝试使用Ruby进行区域传输?,ruby,dns,Ruby,Dns,我想知道如何使用Ruby执行区域传输,利用所有发现的名称服务器 我下面的代码不起作用。如果有更好的方法,一定要告诉我。我熟悉像Net::DNS这样的gems,但如果可能的话,我希望将其作为一个系统命令 用户输入: # Query domain dns info: print "[*] Search DNS information for: (ex. rotten.com) " domain = gets.chomp # Zone xsfr: 28: puts "\nAttempting
# Query domain dns info:
print "[*] Search DNS information for: (ex. rotten.com) "
domain = gets.chomp
# Zone xsfr:
28: puts "\nAttempting zone transfer on #{domain}:"
29: for server in system 'host -t ns' << " #{domain}" do
30: system 'host -l ' << " #{domain} #{server}"
31: end
#查询域dns信息:
打印“[*]搜索以下DNS信息:(例如rotter.com)”
domain=get.chomp
#区域xsfr:
28:将“\n诱人的区域转移放在#{domain}:
29:对于系统“host-tns”中的服务器,该方法将被调用命令的状态返回为true/false,而不是您想要的捕获的标准输出
我建议使用基本倒勾来捕获输出,然后将其传递给字符串或像数组一样迭代结果:
`cmd`.each_line do |l|
... Do something ...
end
…它不接受给定的开关,如(-t ns或-l)
错。打开IRB并键入:
`ls -al`
以字符串形式返回命令的输出。区域传输由DNS上的AXFR操作提供
如果要使用命令行执行此操作,请使用DIG:
dig -t axfr @ns.of_the_domaine.tld domaine.tld
并执行system
或反向引用以捕获输出
更干净,但您似乎不希望出现此问题,您可以使用:
Net::DNS::Resolver
使用axfr
方法
安装gem:
警告:您的DNS配置必须允许从您的解决点开始执行axfr
,否则您需要使用query
或search
方法逐记录执行此操作,
或者在命令行中指定ANY、A、MX、NS等记录类型。如何准确捕获:system'host-t NS'的输出谢谢更新。它似乎在irb下工作,但不是通过实际的脚本。然后你又做错了什么。创建一个包含放置%x[ls-al]
的文件并运行它<代码>%x是使用反勾号的另一种方法。更好的方法是,这样做,然后将您的小测试脚本和输出或错误附加到您的问题中,这样我们就可以看到您正在使用的内容和输出。谢谢。仍然在irb下工作,但不是脚本。暂时关门。
Net::DNS::Resolver
gem install net-dns