Я пробовал экспортировать в http_proxy и https_proxy, но это не сработало.
Я предполагаю, что есть другой способ использовать прокси-сервер при запросе информации Whois из командной строки?
решение1
Команда whois использует определенный протокол и порт, а именно whois 43/tcp
; поэтому очевидно, что она пытается использовать HTTP(S) (HTTP-порт 80/tcp и HTTPS 443/tcp по умолчанию).
Поэтому поддержка HTTP-прокси работать не будет, поскольку эти протоколы не участвуют во внутренней работе протокола whois.
Если вам нужно настроить внешний прокси-сервер, вам понадобится прокси-сервер с поддержкой socks, как в этом примере.https://stackoverflow.com/questions/6718836/how-can-i-imple-whois-proxy-in-perl
Для Whois-прокси на Python см.uwhoisdи для получения дополнительных разъяснений по его использованию:python: как выполнить whois с помощью uwhoisd proxy
смотрите такжеО протоколе WHOIS
Протокол WHOIS — это простой текстовый протокол, который прослушивает порт TCP 43. Существует RFC, определяющий протокол,Запрос на предложение 3912.
решение2
КТО— это протокол TCP/IP, HTTP не участвует в запросе, поэтому HTTP-прокси не будет работать.
Если ваш прокси-сервер также предоставляет интерфейс SOCKS, вы можете попробовать использоватьtsocks или proxychains-ng как описано здесьдля выполнения запроса.
решение3
для меня это сработало:
ncat --listen --exec '/usr/bin/ncat --proxy <proxy_ip>:<proxy_port> whois.ripe.net 43' 8043 &
запрос:
whois --host localhost --port 8043 <ip_that_i_want_to_whois>
решение4
Если вы разрешите порту 43 выходить из ваших http-прокси, то вы можете использовать скрипт оболочки, чтобы сделать это с помощью явного CONNECT
запроса.
прохождение $1
в качестве whois
хоста, например whois.nic.iana
, $2
как запрос и $3
как прокси-хост
#!/bin/sh
(
sleep 1
echo "CONNECT $1:43 HTTP/1.1"
echo ""
sleep 2
echo "$2"
echo ""
sleep 4
) | telnet $3 8080