我使用Ruby版本:2.0。在rails应用程序中使用时,函数Resolv.getaddress(fqdn)将返回以下错误。
Parameters: {"fqdn"=>"1kzdm.scalsoln.in"}
Completed 500 Internal Server Error in 64ms
Resolv::ResolvError (no address for 1kzdm.scalsoln.in):
我在/ etc / hosts中有此主机的条目,并且可以使用ping解析。 如何使Resolv.getaddress()函数读取/ etc / hosts文件中的条目?
答案 0 :(得分:0)
它应该像你期望的那样工作 - 它在我的机器上运行。
但是, Resolve::Hosts
在每个分辨率上都没有在/ etc / hosts中读取。它在第一个分辨率上读取文件,然后缓存以用于后续调用。也许您只需要重新启动服务器进程以强制重新加载/ etc / hosts文件?
要解决缓存问题(即始终使用非缓存数据解析),每次要查找内容时都可以创建一个新的Resolv
实例:
Resolv.new.getaddress("1kzdm.scalsoln.in")
(请注意其中的new
)。