whoisコマンドでプロキシを使用する方法は?

whoisコマンドでプロキシを使用する方法は?

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

関連情報