http_proxy 및 https_proxy로 내보내기를 시도했지만 작동하지 않는 것 같습니다.
명령줄에서 whois 정보를 쿼리할 때 프록시를 사용하는 또 다른 방법이 있을 것 같아요.
답변1
whois 명령은 특정 프로토콜과 포트, 즉 whois 43/tcp
; 따라서 분명히 HTTP(S)(기본적으로 HTTP 포트 80/tcp 및 HTTPS 443/tcp)를 사용하려고 합니다.
따라서 HTTP 프록시 인식은 작동하지 않습니다. 해당 프로토콜은 whois 프로토콜의 내부 작동과 관련되지 않기 때문입니다.
외부 프록시를 설정해야 하는 경우 이 예와 같이 양말 인식 프록시가 필요합니다.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