Delphi idWHOIS与Web代理

时间:2012-08-23 10:24:42

标签: delphi http proxy whois

美好的一天,

请帮助您了解如何通过网络代理使用idWHOIS? 我想使用免费的网络代理匿名拨打电话。

为什么idHTTP组件使用ProxyParams但idWHOIS不是这么简单?

我真的很无能:)

查看我尝试过的代码剪辑:

procedure TForm2.Button2Click(Sender: TObject);
var
  ProxyHTTP :TIdConnectThroughHttpProxy;
  Proxy :TIdCustomTransparentProxy;
begin
  ProxyHTTP := TIdConnectThroughHttpProxy.Create(Self);
  Proxy := TIdCustomTransparentProxy.Create(Self);
  Try

{    idIOHandler.TransparentProxy := Proxy;

    Proxy.Host := 'whois.ausregistry.net.au';
    Proxy.Port := StrToInt('43');
    Proxy.IPVersion := ID_DEFAULT_IP_VERSION;
//    Proxy.Connect(idIOHandler, edtProxy.Text, StrToInt(edtPort.Text), ID_DEFAULT_IP_VERSION);
//    Proxy.Enabled;

    Proxy.ChainedProxy := ProxyHTTP;
 }

    idIOHandler.TransparentProxy := ProxyHTTP;
    ProxyHTTP.Host := edtProxy.Text;
    ProxyHTTP.Port :=  StrToInt(edtPort.Text);
    ProxyHTTP.IPVersion := ID_DEFAULT_IP_VERSION;
    ProxyHTTP.OnStatus := ProxyHTTPOnStatus;
    ProxyHTTP.Enabled;
    ProxyHTTP.Connect(idIOHandler, edtProxy.Text, StrToInt(edtPort.Text), ID_DEFAULT_IP_VERSION);

    Memo1.Clear;
    Memo1.Update;
    Memo1.Lines.Text := idWhois.WhoIs(edtDomain.Text + '.com.au');
  Finally
    idIOHandler.Close;
    idWhois.Disconnect;
    Proxy.Free;
    ProxyHTTP := TIdConnectThroughHttpProxy.Create(Self);
  End;
end;

1 个答案:

答案 0 :(得分:0)

首先 - 你使用whois或http协议吗?

  • 有原生的whois服务通过其原生协议工作。
  • 并且有WWW前端,可让您在MSIE(Microsoft Internet Explorer)等WWW浏览器中发出whois请求并查看结果。

显然你应该能够通过HTTP代理连接到后者。 WWW在这里是一起使用的几种相关技术的替代品:HTTP + SSL / TLS + WebDAV + HTML + CSS + JS等等。因此,HTTP代理可以被视为HTTP的子集,它是WWW的子集 并且无法连接到前者,因为whois不是WWW blob的一部分。

例如,同样的事情是电子邮件,它也不属于WWW领域:

  • 有邮件程序,直接通过IMAP / POP / SMTP协议和相应的端口连接,
  • 并且有像Yahoo和GMail这样的WWW前端允许通过MSIE查看邮件。 WWW访问通过HTTP代理工作,直接访问不是HTTP,不起作用。

例外:一些代理允许pin-holling。这被视为安全漏洞和错误配置,但有时可能通过HTTP / SSL支持命令CONNECT。但通常无法连接到每个端口,只能连接到:80和:443端口。并且极端罕见的是whois协议将在该端口上,仅HTTP或HTTPS协议。 一些服务器,如Jabber,ICQ,GTalk等许多信使,或Skype等超级节点,故意滥用这些端口:80和443提供非HTTP协议,从而帮助这些程序欺骗HTTP代理和绕过NAT隔离。但我认为你很难找到很多whois服务器这样做

无论如何,如果您发现配置不当的代理或此类特殊配置的whois服务器,您将有机会使用它。 否则,您只能将现有WWW前端的idHTTP用于whois服务器。大多数DNS名称注册商都提供它们,因此用户可以使用没有特殊工具但只使用WWW浏览器来检查数据。

Google for“http proxy ssl connect pinholling”,了解有关此类HTTP代理使用的详细信息。 Google为“NAT Traversal”和“Proxy Tunelling”提供了更为一般的概念。 有时,VPN技术被误用于隧道外。

PS。这不回答“我怎么做” - 没有100%可靠的方法 - 但希望回答“为什么idHTTP组件如此简单,有ProxyParams但没有idWHOIS?”。

我想如果通过HTTP代理向我们提供idSMTP或其他电子邮件组件,你会遇到同样的障碍。

PPS。还有更通用的代理类型 - Socks Proxy - 应该允许转发任何TCP类协议。但它们是非常罕见的。