http_proxy 및 https_proxy로 내보내기를 시도했지만 작동하지 않는 것 같습니다.
명령줄에서 whois 정보를 쿼리할 때 프록시를 사용하는 또 다른 방법이 있을 것 같아요.
답변1
whois 명령은 특정 프로토콜과 포트를 사용하여 통신합니다. 즉 whois 43/tcp
, 분명히 HTTP(S)(기본적으로 HTTP 포트 80/tcp 및 HTTPS 443/tcp)를 사용하려고 시도합니다.
따라서 이러한 프로토콜은 whois 프로토콜의 내부 작동을 포함하지 않으므로 HTTP 프록시 인식은 작동하지 않습니다.
외부 프록시를 설정해야 하는 경우 이 예와 같이 양말 인식 프록시가 필요합니다.https://stackoverflow.com/questions/6718836/how-can-i-implement-a-simple-whois-proxy-in-perl
Python의 Whois 프록시에 대해서는 다음을 참조하세요.우후오이시드사용 방법에 대한 추가 지침:python: uwhoisd 프록시를 사용하여 whois를 수행하는 방법
당신은 또한 볼 수 있습니다WHOIS 프로토콜 정보
WHOIS 프로토콜은 TCP 포트 43에서 수신 대기하는 간단한 일반 텍스트 기반 프로토콜입니다. 이 프로토콜을 정의하는 RFC가 있습니다.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