我有使用Ruby内置Resolve::DNS
功能执行DNS查找的代码,它可以很好地解析IP地址到名称(或任何其他类型的适用DNS查找)。
它反对我们的内部域名服务器,但偶尔我想看看外部DNS报告的内容。
例如,为了通过谷歌的公共DNS(8.8.8.8 / https://dns.google.com/)反弹IP地址,我需要能够通过我们经过身份验证的代理提出请求。
我尝试在命令行设置http_proxy
和HTTPS_PROXY
(使用在Resolv::DNS
之外工作的已知良好语法。我也尝试过专门使用ENV['http_proxy'] = 'http://username:password@hostname:port'
(与当然,环境变量的大写都是。)
是否有人知道如何通过Resolv::DNS
的代理提出请求?
请注意,我有其他代码依赖于使用Resolv::DNS
,因此我不会寻找尝试利用其他Ruby gems /库执行此任务的答案。
这是我的代码在查询内部DNS名称服务器时有效,但它不适用于Google DNS(它会在很长一段时间后超时):
dns = Resolv::DNS.new(:nameserver => '8.8.8.8')
dns_ptr = dns.getnames('107.23.199.237') # logitech.com
p dns_ptr
预期产出:
[#<Resolv::DNS::Name: ec2-ip-address-and-name-of-logitech.com-in-aws.com.>]