如何使用Indy TIdWhois的代理?

时间:2017-03-30 05:52:30

标签: delphi indy indy10 delphi-10.2-tokyo

我无法弄清楚如何使用代理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来处理请求。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

Indy 10本身支持两种类型的代理:

  • HTTP,通过 TIdConnectThroughHttpProxy组件。

  • SOCKS 4 / 4a / 5,通过TIdSocksInfo 成分

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

  1. 分配一个 TIdIOHandlerSocket - 派生组件,例如TIdIOHandlerStack 客户的IOHandler财产。

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

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