如何透過 whois 指令使用代理?

如何透過 whois 指令使用代理?

我嘗試導出到 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 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 代理,那麼您可以使用 shell 腳本透過明確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

相關內容