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