Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试使用Ruby进行区域传输?_Ruby_Dns - Fatal编程技术网

正在尝试使用Ruby进行区域传输?

正在尝试使用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

我想知道如何使用Ruby执行区域传输,利用所有发现的名称服务器

我下面的代码不起作用。如果有更好的方法,一定要告诉我。我熟悉像Net::DNS这样的gems,但如果可能的话,我希望将其作为一个系统命令

用户输入:

# 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