delphiidwhois与Web代理
你好 请举例说明如何通过web代理使用idWHOIS? 我想使用免费网络代理匿名拨打whois电话 为什么idHTTP组件有ProxyParams,而idWHOIS没有这么简单 我真是不知所措:) 请参阅我尝试的代码被剪断: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
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结果
- 有邮件程序,通过IMAP/POP/SMTP协议和相应端口直接连接
- 还有像雅虎和GMail这样的WWW前端,允许通过MSIE查看邮件。WWW访问通过HTTP代理工作,直接访问不是HTTP,也不工作
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端口的情况。