如何使用 Indy TIdWhois 代理?

How to use proxies with Indy TIdWhois?

我不知道如何使用 TIdWhois 的代理。有人知道我的线索吗?

根据 Remy 的描述,我使用以下代码:

w:=TIdWhois.Create(nil);
p:=TIdConnectThroughHttpProxy.Create(nil);
io:=TIdIOHandlerStack.Create(nil);
p.Host:=<proxy-ip>
p.port:=<proxy-port>
io.TransparentProxy:=p;
w.io:=io;
w.host:=<whois-server>
w.port:=43;
w.WHoIs(<domain>);

监听端口,仍然使用我的真实IP进行请求。

我做错了什么?

Indy 10 原生支持两种类型的代理:

  • HTTP,通过 TIdConnectThroughHttpProxy 组件。

  • SOCKS 4/4a/5,来自 TIdSocksInfo 组件.

要使用其中任何一个,您需要:

  1. 分配一个 TIdIOHandlerSocket-派生组件,例如TIdIOHandlerStack,到 客户的 IOHandler 属性.

  2. 将所需的代理组件分配给TIdIOHandlerSocket.TransparentProxy属性,将其HostPort属性设置为Host/Port所需的代理服务器,并相应地启用它(通过 TIdConnectThroughHttpProxy.EnabledTIdSocksInfo.Version 属性)。

  3. 设置客户的HostPort 属性到目标服务器的 Host/Port,然后 Connect() 并正常使用客户端。