dnsruby gem:获取dnsruby输出的解析版本

时间:2017-01-16 14:24:32

标签: ruby ruby-on-rails-4

我在dnsruby gem的官方文档中找不到任何内容,所以我在这里问:有没有机会获得dnsruby输出的解析版本,特别是对于A-Record?

当我表演时:

def find_domain self.domain_name = Reversed.lookup(self.ip_address) res = Resolver.new a_recs = res.query(self.domain_name) # Defaults to A record end

a_recs的输出是一个长字符串,例如:

  

;;从192.168.178.1(75字节)收到的答复;; ;;安全等级:UNCHECKED ;; - >> HEADER<< - opcode:QUERY,status:NOERROR,id:59802 ;; flags:qr rd ra cd; QUERY:1,ANSWER:1,AUTHORITY:0,ADDITIONAL:1 OPT伪记录:payloadsize 512,xrcode 0,版本0,标志32768 ;;问题部分(1条记录);; google-public-dns-b.google.com。在一个 ;;答案部分(1条记录)google-public-dns-b.google.com。 86399 IN A 8.8.4.4

我只需要IP地址(在本例中为8.8.4.4)本身而不是我的查询的完整答案。有解决方案吗?我想避免做那种“肮脏”的方式..提前致谢!

1 个答案:

答案 0 :(得分:0)

我将整个字符串分成单个单词.split并将值保存到数组中。然后我将循环遍历它们并选择最后一个值。像这样的东西(注意测试):

a_recs = res.query(self.domain_name).split

a_recs.each do |ip|
 a_recs = ip
end

当遍历数组时,最后一个值被覆盖,因此最后一个值(在我的例子中是IP地址8.8.4.4)应该保存到a_recs