Ruby - Использование Resolv::DNS для поиска записей DNS через аутентифицированный прокси

У меня есть код, который выполняет поиск DNS с помощью встроенного в Ruby Resolve::DNS функциональность, и она отлично работает для разрешения IP-адресов в имена (или любой другой тип применимого поиска DNS).

Он работает против наших внутренних серверов имен, однако иногда мне хотелось бы посмотреть, что сообщает внешний DNS.

Например, чтобы сопоставить IP-адрес с общедоступным DNS Google (8.8.8.8 / https://dns.google.com/), мне нужно иметь возможность отправлять запросы через наш аутентифицированный прокси-сервер.

Я пробовал настройку http_proxy а также HTTPS_PROXY в командной строке (используя известный хороший синтаксис, который работает за пределами Resolv::DNS, Я также пытался специально с помощью ENV['http_proxy'] = 'http://username:password@hostname:port' (с обеими заглавными буквами для переменной среды, конечно).

Кто-нибудь знает, как делать запросы через прокси с Resolv::DNS?

Обратите внимание, что у меня есть другой код, который зависит от использования Resolv::DNS поэтому я не ищу ответы, которые пытаются использовать другие гемы / библиотеки Ruby для этой задачи.

Вот мой код, который работает при запросе внутренних 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.>]

0 ответов

Другие вопросы по тегам