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-implement-a-simple-whois-proxy-in-perl
PythonのWhoisプロキシについては、誰ですか使用方法の詳しい説明については、以下をご覧ください。Python: uwhoisd プロキシを使用して 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