0

良い一日、

Web プロキシ経由で idWHOIS を使用する方法の例を教えてください。無料の Web プロキシを使用して、匿名で whois 通話を発信したいと考えています。

ProxyParams を持つが idWHOIS を持たない idHTTP コンポーネントを使用すると、なぜそれほど単純なのですか?

私は本当に無知です:)

私の試みたコードが切り取られているのを見てください:

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;
4

1 に答える 1

0

まず、whois または http プロトコルを使用していますか?

  • ネイティブ プロトコルを介して動作するネイティブの whois サービスがあります。
  • また、whois リクエストを作成し、MSIE (Microsoft Internet Explorer) などの WWW ブラウザで結果を表示できる WWW フロントエンドもあります。

明らかに、HTTP プロキシ経由で後者に接続できるはずです。 ここでの WWW は、一緒に使用されるいくつかの関連技術の別名です: HTTP + SSL/TLS + WebDAV + HTML + CSS + JS など 。 、whois は WWW blob の一部ではありません。

たとえば、電子メールでも同じことが言えますが、これも WWW 領域外です。

  • IMAP/POP/SMTP プロトコルと対応するポートで直接接続するメール プログラムがあります。
  • また、MSIE 経由でメールを表示できる Yahoo や GMail などの WWW フロントエンドもあります。WWW アクセスは HTTP プロキシ経由で動作します。直接アクセスは HTTP ではなく動作しません。

例外: 一部のプロキシはピンホールを許可します。これはセキュリティ ホールや不適切な構成として扱われますが、それでも 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 プロキシの使用の詳細については、Google で「http プロキシ ssl 接続ピンホール」を参照してください。「NAT Traversal」は Google、より一般的な概念は「Proxy Tuneling」。外部にトンネリングするために VPN 技術が [誤用] されることがあります。

PS。これは「どうすればいいですか」という答えにはなりません - 100% 信頼できる方法はありません - しかし、うまくいけば、「ProxyParams を持っているのに idWHOIS を持っていない idHTTP コンポーネントではなぜそんなに単純なのですか?」という答えになるでしょう。

idSMTP やその他の電子メール コンポーネントを HTTP プロキシ経由で送信する場合も、まったく同じ障害に遭遇することになると思います。

PPS。より一般的な種類のプロキシ (Socks Proxy) があり、TCP クラスのプロトコルを転送できるようにする必要があります。しかし、それらは非常にまれなものです。

于 2012-08-23T11:44:47.117 に答える