我在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)本身而不是我的查询的完整答案。有解决方案吗?我想避免做那种“肮脏”的方式..提前致谢!
答案 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
。