トップへ(mam-mam.net/)

プロキシサーバーを14行で作る ~Delphiソースコード集

検索:

プロキシサーバーを14行で作る ~Delphiソースコード集

1.プロジェクトの作成

ファイル⇒新規作成⇒Windows VCL アプリケーション -Delphi
をクリックします。

2.プロジェクトの保存

ファイル⇒すべて保存、またはすべて保存ボタンを押して、プロジェクトとユニットを保存します。
「新しいフォルダ」ボタンを押して「proxy」フォルダ等を作成し、ユニットはデフォルトの「Unit1.pas」、プロジェクトは「proxy.dproj」で保存します。

3.コンポーネントのドラッグ&ドロップ

TIdHTTPProxyServer(コンポーネントパレットの検索ボックスにproxyと入力して検索してもよい)をフォームにドラッグ&ドロップします。

同様にTEditとTButtonをフォームにドラッグ&ドロップします。

4.プロパティの設定

フォームのEdit1をクリックして選択し、オブジェクト インスペクタのプロパティの NumbersOnlyをTrue、Textを8808 に設定します。

同様にButton1のプロパティのCaptionを「Proxy起動」に設定し、ボタンの幅を少し広くします。

5.ソースコードの記述

Button1をダブルクリックします。
以下の赤字の部分のソースコードを記述します。

procedure TForm1.Button1Click(Sender: TObject);
begin
  if IdHTTPProxyServer1.Active then
  begin
    IdHTTPProxyServer1.Active:=False;
    Button1.Caption:='proxy起動';
    Edit1.ReadOnly:=False;
  end
  else
  begin
    IdHTTPProxyServer1.DefaultPort:=
        StrToIntDef(Edit1.Text,8808);
    IdHTTPProxyServer1.Active:=True;
    Button1.Caption:='proxy停止';
    Edit1.ReadOnly:=True;
  end;
end;

6.完成したアプリケーションを起動する

Proxyサーバーが完成したので、 実行⇒実行 又はツールバーの「?」ボタンを押して実行します。

7.プロキシサーバーを起動する。

「Proxy起動」ボタンをクリックします。 以下のウィンドウが表示(Windowsファイアーウォールのブロック)された場合は 「アクセスを許可する」ボタンを押して8808ポートのオープンを許可します。

8.Chromeをプロキシサーバー経由でインターネットに接続する。

Chromeを起動し、設定⇒詳細設定⇒プロキシ設定を開く をクリックします。

インターネットのプロパティ ウィンドウが表示されたら「LANの設定」ボタンをクリックします。

ローカル エリア ネットワーク(LAN)の設定 ウィンドウが表示されたら
「LANにプロキシ サーバーを使用する」にチェックを入れ、
「アドレス」に localhost と入力し、
「ポート」に 8808 と入力し、「OK」ボタンをクリックします。

ブラウザにプロキシ設定ができたので、プロキシ経由でインターネットに接続できることを確認します。
ブラウザのURLに https://www.google.co.jp/ を入力して表示されることを確認する、 「proxy停止」ボタンを押して、ブラウザの再読み込み(F5キーを押す等)を行うと、インターネットに接続できなくなることを確認します。

上記ソースコード、コンパイルしたEXEファイル一式ダウンロード
コンパイルしたEXEファイルのみダウンロード

プロキシサーバーのログ

Form1にTMemoをドラッグ&ドロップして、IdHTTPProxyServer1の「OnBeforeCommandHandler」イベントをダブルクリックして以下のソースコードを記述すれば、 Memo1にログが表示されるようになります。

procedure TForm1.IdHTTPProxyServer1BeforeCommandHandler(
  ASender: TIdCmdTCPServer; var AData: string; AContext: TIdContext);
begin
  Memo1.Lines.Add(AData);
end;