delphiidwhois与Web代理

delphiidwhois与Web代理,delphi,http,proxy,whois,Delphi,Http,Proxy,Whois,你好 请举例说明如何通过web代理使用idWHOIS? 我想使用免费网络代理匿名拨打whois电话 为什么idHTTP组件有ProxyParams,而idWHOIS没有这么简单 我真是不知所措:) 请参阅我尝试的代码被剪断: procedure TForm2.Button2Click(Sender: TObject); var ProxyHTTP :TIdConnectThroughHttpProxy; Proxy :TIdCustomTransparentProxy; begin

你好

请举例说明如何通过web代理使用idWHOIS? 我想使用免费网络代理匿名拨打whois电话

为什么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;

首先,你使用whois还是http协议

  • 存在通过其本机协议工作的本机whois服务
  • 还有WWW前端,可以让您在MSIE(微软Internet Explorer)等WWW浏览器中发出whois请求和vew结果
显然,您应该能够通过HTTP代理连接到后者。 WWW是几种相关技术的统称:HTTP+SSL/TLS+WebDAV+HTML+CSS+JS等。因此,HTTP代理可以被视为HTTP的子集,HTTP是WWW的子集 不能连接到前者,因为whois不是WWW blob的一部分

例如,电子邮件也是如此,它也不属于WWW领域:

  • 有邮件程序,通过IMAP/POP/SMTP协议和相应端口直接连接
  • 还有像雅虎和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服务器,您都有机会使用它。 否则,您将只能在whois服务器的现有WWW前端上使用idHTTP。大多数DNS名称注册商都提供了它们,因此用户可以不用特殊工具,只使用WWW浏览器来检查数据

谷歌搜索“http代理ssl连接pinholling”,了解更多有关http代理使用的详细信息。 谷歌为“NAT遍历”和“代理调谐器”提供了更一般的概念。 有时,VPN技术被[mis-]用于外部隧道

另外,这并没有回答“我怎么做”——没有100%可靠的方法——而是希望回答“为什么idHTTP组件有ProxyParams,而idWHOIS没有这么简单?”

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


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

你很难找到一个网络代理来讨论whois协议。无论如何,这听起来像是虐待行为。许多
whois
服务器每天只允许有限数量的查询,这是有原因的。但大多数注册商都有whois数据库的HTTP前端。为了防止垃圾邮件收集者使用whois数据库,他们更喜欢混淆数据,比如显示图片而不是文本。Retaged:这个问题不是Delphi特有的。它涉及一般的Internet概念,如端口和协议,以及特定的HTTP协议功能(HTTP代理)。
whois
(RFC3912)运行在TCP之上,而不是HTTP之上。因此,这里没有代理的概念,您不应该使用HTTP库来执行whois查询。更具体地说,是本机whois协议。我还阅读了一些关于支持CONNECT请求的HTTP代理也可以服务whois请求的信息?这是真的吗?有任何指示或示例吗?:)我在“例外:某些代理允许pin holling”一词之后写了关于CONNECT的文章。我没有什么要补充的。例如,在我的工作中,http代理允许连接到端口:80和:443。它拒绝与其他端口的连接。它允许我使用Jabber信使(GTalk和其他一些)。因为他们的服务器确实滥用了Jabber协议的端口。我不知道也不知道你的代理是如何配置的。也不存在whois服务器滥用whois协议的:80和:443端口的情况。