我认为这个问题与rest-clIEnt无关,而是与基础Ruby网络有关.我试过要求’resolv’和’resolv-replace’,但他们没有帮助. ‘dig’报告DNS查询的TTL为1小时.
有没有办法让Ruby缓存DNS请求?我可以更改代码以明确使用IP地址,但这是解决问题的错误位置.
我正在运行Ubuntu 12.04和Ruby 1.9.3.
解决方法 您可以使用dnsruby gem将名称解析为地址,然后使用调用中的地址.#! /usr/bin/env ruby# Gets the IP address of a host.require 'dnsruby' # gem install dnsruby first,of coursedef hostname_to_ip_addr(host_name) query = Dnsruby::Message.new(host_name) response = Dnsruby::Resolver.new.send_message(query) response.answer[1].addressendhost_name = 'cnn.com'ip_addr = hostname_to_ip_addr(host_name)puts("Host name: #{host_name},IP address: #{ip_addr}")
来自这个Gist的原始代码
总结以上是内存溢出为你收集整理的在Ruby中缓存DNS查询全部内容,希望文章能够帮你解决在Ruby中缓存DNS查询所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)