自動プロキシ検出。 個人用Webプロキシを作成する
1.はじめに
この記事では、PHPの非標準的な使用法について説明します。仮想プロキシサーバーとして使用できるトラフィックを圧縮するPHPスクリプトを作成します。 PHPの専門家は、ここで新しいものを見つける可能性はほとんどありません。このphpのアプリケーションは私のノウハウではなく、特別なphp関数は使用されていません。 この記事の残りの部分では、Webサーフィン中にキロメガギガバイトを節約する新しい方法について学習します。 この記事を読んだ後、進取の気性のある人が明日メガバイトを節約し始めても驚かないでしょう。 特に彼がこの仮想プロキシの透過的な操作のためのスキームを構築する方法を学んだ後。
ダイヤルアップの若い頃、モデムは圧縮データを交換していたため、zipファイルをダウンロードするよりもWebサーフィンの速度が速くなりました。 したがって、クライアントは、圧縮中のモデムプロセッサの負荷により、時間と費用を節約できました。 他の時代も来ました:専用回線の猛攻撃の下でダイヤルアップは徐々に地位を失っています。 そして、ここでは、原則として、誰かのプロセッサ容量に対するトラフィック圧縮の話はありません。トラフィックは、バイトに圧縮されるのではなく、元の形式で送信されます。
(これが側で世話をされていない場合
サーバ)。 しかし、それは絞ることができます!..
これを行うには、ブラウザとWebサーバーの間に別のリンクが必要です。これは、モデムのように、すべての着信(ブラウザへの着信)トラフィックを圧縮します。 このリンクは、リモートWebサーバー上の通常のPHPスクリプトになります。 特別に作成されたリクエストに応じて、必要なページをダウンロードし、圧縮された形式でブラウザに提供するのはこのスクリプトです。 このphpスクリプトが配置されているホスティングの主な要件:ホスティングバナーがないこと、CURLとGZIPを使用できること(関数呼び出しでスクリプトを実行することで、それらの可用性を確認できます)
phpinfo)。
中間交通圧縮システムの動作メカニズムをよりよく理解するために、その動作の技術をより詳細に検討してみましょう。
次の図は、ページをロードするための3つのオプションの図を示しています。通常の呼び出し、中間サーバーでのデータ圧縮、および中間サーバーでのページ圧縮を使用した透過的な作業です。 それぞれの場合に何が起こるか見てみましょう。
2.ネットワークからブラウザページを取得する
2.1。 通常の通話
ユーザーがsite.comサーバーのpage.htmlに興味を持っているとしましょう。 彼はアドレスバーにURLsite.com/page.htmlを入力します。 次に、ブラウザはネットワークを介してhttp://site.com/page.htmlページのhttpリクエストを行います(図では、最初に左から細い点線の矢印)。 この要求に応答して、site.com Webサーバーはブラウザーにhttp応答を発行し、続いてページの本文page.html(図では左から2番目の太い矢印)を発行します。 その後、ブラウザは受信したページの内容をモニター画面に表示します。
2.2。 中間サーバーでのデータの圧縮
ブラウザとsite.comWebサーバーの間にデータが圧縮される中間のwebzip.comサーバーを紹介しましょう。 page.htmlページを取得するためのアルゴリズムは、ブラウザがsite.comから直接ページを要求するのではなく、webzip.comを介してページを要求することを除いて、前の場合と同じです。 さらに、フルサイズ(非圧縮データ)はsite.comとwebzip.comの間でのみ、ブラウザとwebzip.comの間ではページの本文が圧縮された形式で表示されます(図では、太い点線の矢印、3番目から左)。 ページを圧縮するためにphpの機能を使用しているため、ブラウザから要求されたアドレスはhttp://webzip.com/myzip.php?url=http://site.com/page.htmlの形式になることに注意してください。 このリクエストを受信したWebサーバー(webzip.com)は、myzip.phpスクリプトを呼び出します。このスクリプトは、呼び出しのget-parameter( "url"という名前のパラメーター)を使用して、 http://site.com /page.html スクリプトmyzip.phpは、結果のページを圧縮された形式でブラウザに提供します。
2.3。 中間サーバーでのページ圧縮による透過的な作業
これは、ブラウザの仮想圧縮プロキシの操作、したがってユーザーが表示されないという点で、前のケースとは異なります。 これは、webzip.comとブラウザの間に別のリンクを導入することで実現されます。 このリンクは通常のhttpプロキシであり、特に、発信httpリクエストヘッダーを書き換えます(たとえば、http://site.com/page.htmlから
http://webzip.com/myzip.php?url=http://site.com/page.html)。
3.透過的な操作を設定します
3.1。 スクリプトのインストール
上記のすべてを実装するスクリプトをここからダウンロードできます。 V
3つのファイル:myzip.php、func.inc.php、log.php。 1つ目は、クライアントがアクセスするメインファイルです。 2番目には、最初の関数定義が含まれています。 3つ目は、プロキシ操作の統計を表示するように設計されています(統計ページテンプレートが含まれ、エッセンスはlog.logから取得されます。
count.log)。
前述のように、スクリプトは、PHP、CURL、ZLIBがサポートされており、バナーがないホスティングに配置する必要があります。 インターネットでは、これは月に30ルーブルで簡単に見つけることができます。
有料ホスティングを恐れないでください-それは簡単に報われるでしょう。 たとえば、0.05 $ / MBを支払う場合、ホスティングに支払うために20メガバイトの節約が必要になります。 私の経験では、これは約100〜150 MBのWebサーフィンです(平均圧縮率は4〜7倍ですが、最大12まであります)。
ブラウザに次のアドレスを入力すると、正しい動作を確認できます:http://webzip.com/myzip.php?url = http://ya.ru。 すべてが正しく行われると、Yandexページはわずかに変更されたタイトルで読み込まれます
(タイトル)。
3.2。 Proxomitronのセットアップ
中古Proxomitronver。 Naoko 4.4(http://www.proxomitron.ru)。
そのため、プロキシからのWebプロキシを使用した透過的な作業、つまりブラウザからの送信URLの非表示の変換の可能性を取得したいと考えています。 これを行うには、プロキソミトロンのメインウィンドウで[ヘッダー]ボタンを押します。 開いたウィンドウ(「HTTPヘッダーフィルター」/「HTTPヘッダーフィルター」)で、「URL:エイリアスリダイレクト(出力)」の行までスクロールして選択します。 「編集」ボタンをクリックします
展開されたウィンドウ(「ヘッダーフィルターエディター」/「HTTPヘッダーフィルターエディター」)で、次のようにフィールドに入力します(最初のフィールドを除くすべて)。
HTTPヘッダー(HTTPヘッダー)(!変更しないでください!)URL:Alias Redirector(Out)
URL一致(URL一致)*
ヘッダー値の一致*
置換テキスト$ RDIR(http://webzip.com/myzip.php?url=\u)
http://webzip.com/がサイトのURLであるのに対し、myzip.phpはサイトにアップロードしたスクリプトの名前です。
要点は最後の行にあります。proxomitronは任意のURL( "\ u"パラメーター)をブラウザーからhttp://webzip.com/myzip.php?url=\uに変更します。 $ RDIRの代わりに$ JUMPコマンドを記述した場合、proxomitronの動作は半透明になります。つまり、ブラウザーは単に新しいURLにリダイレクトされます。 $ RDIRが使用されている場合、リダイレクトはブラウザに対して透過的になります。
「OK」、「適用」、「OK」の順にクリックしてウィンドウを閉じます。 この手順を再度繰り返さないようにしたい場合は、設定を保存してください。
ブラウザでは、IP = 127.0.0.1およびポート8080(デフォルトでプロキシがリッスンするポート)のプロキシサーバーを規定しています。
ページタイトルを変更することで、トラフィック圧縮システムが同じように機能することを確認できます(新規
私は私の喜びを分かち合います-ICQでさえプロキソミトロンを通して私のために働きました。
4.テストエコノミー
プロキソミトロンをセットアップした後、私は新しい作業システムを数字で表現することにしました。 以下は、15分間の高速Webサーフィンのプロトコルのようなものです。
Webインターフェイスを介してmail.ruのメールを確認しました。 メインページ-すでに39kBの節約。 ボックスに入った-すでに60kB; フォルダを実行し、メールを確認しました。 出てきた-すでに300kBの節約。 Yandexにいくつかリクエストをしました。出力は570kBです。 3つのSMS(Megafon、Beeline、MTS)を送信しました。 sql.ruとrsdn.ruのフォーラムのように見えました。 グーグルでいくつかのジブリッシュを検索した。 カウンターを見ると、合計2メガバイトの節約になります。 些細なことのようですが、通常の作業は1時間です。 1か月の仕事で何が得られますか? 1セント硬貨はルーブルを節約します。
5.合計
ホスティング業者は、プロキシのようなものを自分たちの側で作成することを本当に歓迎していないことをすぐに警告します。 自己責任でスクリプトを使用してください、あなたに答えてください。 ただし、数ギガバイトのトラフィックでパブリックプロキシを配置しない場合、スクリプトで200〜500 MBに気付く可能性は低くなります。彼らにとって、これは海の低下です。 さらに、圧縮スクリプトを別のページに埋め込むと、ホスティング業者がキャッチに気付くのがさらに難しくなります。 外向きに(必要な「url」パラメータを指定して呼び出すことなく)、通常の状態になります ホームページ。 特別な要望があれば、プロバイダーはこのトリックを検出しますが、チャンスはわずかです。 さて、それが判明した場合、あなたはあなたのサイトが壊れていて、「私たちは無実です」と言うでしょう。 最悪の場合、ホスティング業者(または前のアカウントからのアカウント:))を変更する必要があります。
すべてのログインとパスワードはホストを経由し、必要に応じて簡単に傍受されるため、このようなプロキシを使用して極秘情報にアクセスすることはお勧めしません。 ただし、HTTPSを使用する場合、下品なホスティング業者にとってすべてがそれほど単純なわけではありません。
このテクノロジーを使用することにはある程度の「非匿名性」がありますが、簡単なハッキングに使用できます(つまり、攻撃が検出された場合、FSBはあなたを探しません)。 たとえば、クラスメートのサイトで入力パラメータの処理に匿名でふける。
スクリプトコードを調べると、そこにいくつかのオプションがあり、スクリプトの機能をオン/オフにすることができます。 たとえば、タイトルを変更してスクリプトの統計を表示します(MOD_TITLEパラメーター)。 必要に応じて、スクリプトに追加機能を簡単に追加できます。 たとえば、さらなる分析を目的としたデータベースへの操作プロトコルの出力(デフォルトのプロトコルは、
log.php)。
同様のサービス(たとえば、www.tcompressor.ruやwww.toonel.net)は、有料と無料の両方ですでにインターネット上に存在していることに注意してください。 それらはすべて長所と短所があります。 上記のテクノロジーを使用する主な利点は、あなた自身がトラフィックの所有者であるということです(バナー、支払い、疑わしいアプリケーション、ホスティング、
サービスのホスティング)-すべてがあなたの手にあります。
P.S. 私は自分の言葉が究極の真実だとは考えていないので、何かが間違っている場合は訂正してください。 ありがとう!
P.P.S. スクリプトにも罪がないわけではないので、訂正を歓迎します。
整理するには 個人のウェブ-プロキシ、2つのツールが必要です:「左」ホスティングとプロキシスクリプト自体。 しかし、解決策に移る前に、私たちが何をしているのかを理解するための少しの理論。
ウィキペディアによると:
Webプロキシ(別名「Webベースのプロキシ」)は、プロキシサーバーであり、さまざまなWebサイトからコンテンツをダウンロードするための仲介役として機能するWebサーバーにインストールされたWebアプリケーションであるアノニマイザーです。
Webプロキシは次の目的で使用できます。
- ウェブサイトの読み込みをスピードアップします。
- オンラインサービスのテスト。
- 特定のWebサイトアドレスへのアクセスに関するローカルネットワーク管理者の制限を回避します。
- 実際のIPアドレスとWebサイトへの匿名アクセスを非表示にします。
- 特定の国のユーザーが閲覧するために閉鎖されたウェブサイトへのアクセスを取得する。
- そして他の多くの目的。
それでは、理論を終えて実践に移りましょう。
1.Webプロキシスクリプト必要最小限の機能を備えたシンプルなWebプロキシスクリプト。
スクリプトのダウンロード(28.4 Kb)
2.無料ホスティング
プロキシ自体のスクリプトと、左側のIPアドレスを配置する必要があります。
up100mb.comを選びました。 php、ftp、セカンドレベルドメインによる無料ホスティング。 必要なのはそれだけです。
3.インストール
このリンクでホスティングに登録します。 サイトのFTPにアクセスします。 Webプロキシのアーカイブをダウンロードし、サイトのftpで目的のフォルダーに解凍します。 新しく作成したサイトに移動し、Webプロキシを使用します。 これで、サイトの所有者には、アドレスの代わりにホスティングIPが表示されます。
P.S. OK、これですべてです。 使用して見えないようにする=)
プロキシ自動検出は、インターネットプロキシサーバーがシステムによって検出され、通常はクライアントに代わって要求を送信するプロセスです。 この 機能性 Webプロキシ自動検出(WPAD)とも呼ばれます。 自動プロキシ検出が有効になっている場合、システムは、要求で使用できるプロキシのセットを返す役割を担う構成スクリプトを見つけようとします。 構成スクリプトがコンパイルされたスクリプトを見つけたら、ダウンロードして実行します ローカルコンピュータを使用するリクエストに対して、プロキシアカウントデータ、リクエストまたはレスポンスフローが受信されたとき。
プロキシの自動検出はクラスによって実行され、クエリレベルのオプション、構成ファイルのオプション、およびダイアログボックスを使用して設定されたオプションを使用できます。 ローカルエリアネットワーク(LAN) インターネットエクスプローラ.
自動プロキシ検出が有効になっている場合、クラスは次のように構成スクリプトを見つけようとします。
関数 InternetQueryOption WinInetは、InternetExplorerによって検出された最新の構成スクリプトを検索するために使用されます。
スクリプトが見つからない場合、クラスはDHCPプロトコル(DHCP)を使用してスクリプトを検索します。 DHCPサーバーは、スクリプトの場所、ホスト名、またはスクリプトの完全なURLのいずれかで応答できます。
DHCPでWPADホストが定義されていない場合、DNSは名前またはエイリアスとしてWPADを使用してホストにクエリを実行します。
メインアプリケーションが指定されておらず、構成スクリプトの場所がローカルの設定によって決定される場合 インターネットネットワークエクスプローラーまたは構成ファイルでは、この場所が使用されます。
プロキシアカウントはconnectoid--mainに設定されています。 ダイアログボックスのConnectoid要素 ネットワーク接続物理ネットワークデバイス(モデムまたはイーサネットカード)または仮想インターフェイス(接続など)にすることができます VPNネットワークデバイスを介して実行)。 コネクトイドが変更されると(たとえば、ワイヤレスリンクがアクセスポイントまたはVPNを変更する場合)、プロキシ検出アルゴリズムが有効になります。
デフォルトでは、InternetExplorerのプロキシ設定がプロキシサーバーの検出に使用されます。 アプリケーションがで実行されている場合 アカウント非対話型(IEプロキシ設定を構成する便利な方法がない)または使用する必要がある場合 さまざまなオプション IE設定よりもプロキシの場合、指定した要素とを使用して構成ファイルを作成することにより、カスタムプロキシオブジェクトを構成できます。
生成されたリクエストの場合、次のコード例に示すように、リクエストで空白を使用して、リクエストレベルで自動プロキシ検出をオフにすることができます。
アプリケーションドメインプロキシプロキシアカウントを持たないリクエストは、で利用可能なデフォルトのプロキシを使用します。
私のブログを読んだ人は、私が数分で数百の動作するプロキシを見つけることについての記事をすでに書いたことを覚えているでしょう。 誰かが記事を読んでいない場合はここにあります:インターネット上の匿名性。 はい、これは確かに良いことです。これらの数百のプロキシから、プロキシの優れた高速ネットワークを作成し、それをかなり長い間使用することができます。 しかし、私たちの生活のすべては永遠ではありません、そしてあなたがいくつのプロキシを持っていても、それらはとにかく最終的に死ぬでしょう。 多くの場合、たとえば、一部のフォーラムで実際のIPを焼き付けないようにするために必要な永続的な高速プロキシは1つだけです(nullが事前に作成されています)。 それは女の子のようです。 さまざまなものが存在する可能性がありますが、常に1つで安定している必要があります)。 さて、議論を始めましょう。
ご存知のように、すべてのプロキシにはphpサポートが必要です。したがって、いずれの場合も、これらの同じスクリプトが配置される場所でホスティングする必要があります。 まあ、とにかく月額1ドルでホスティングを購入できると思います。
PHProxy 0.5b2- 私はそれを使用します。 原則として、このスクリプトは完全にプロキシと呼ぶことができます。匿名化機能として機能するため、不可能です。 あなたはそれをあなたのホストに置いてサイトに行きます、あなたのIPの代わりにあなたのホスティング業者のIPは焦げています。 ただし、スクリプトはCookieで非常にうまく機能し、スクリプトを介してログインして任意のサイトに問題なくアクセスできるため、これをアノニマイザーと呼ぶこともできません。 私自身もこのスクリプトを使用しており、速度から安定性まで、あらゆる点で私に適しています。 私が今抱えている唯一の問題は、「閲覧したページに画像を表示する」チェックボックスがオンになっているのに、何らかの理由で画像が表示されなくなったことです。まあ、とにかく画像は必要ありません。このリンクからPHProxy0.5b2をダウンロードできます。 :添付ファイル:proxy-0.5b2.zip(26 KB)
ZELUNEプロキシスクリプト–原則として、PHProxy0.5b2の類似物。 私が気付いた唯一の違いは、それがどういうわけか私にとってより良い写真をロードするということですが、一般的にそれは少し遅くなります。 他に違いは見つかりませんでした。 Zelineプロキシスクリプトは、次のリンクからダウンロードできます。添付ファイル:zelune.zip(6 KB)
HTTPローカルプロキシ-私が理解しているように、それはアノニマイザーでもありますが、 正しい設定上記で書いたスクリプトよりも、このスクリプトを使用する方が便利です。 このスクリプトの要点は次のとおりです。
起動時に、クライアントはファイルからスクリプトのアドレスをロードし、プロキシとして機能します。 私たちはクライアントに情報を送信し、彼はそれをスクリプトに送信し、スクリプトは私たちが望むものを取得してクライアントに応答を送信し、そして彼は私たちに送信します)
スクリプトのインストール:
- アーカイブgate.php、host.txt、proxy.exeには3つのファイルがあります
常に許可されたソケットを使用して、gate.phpファイルをホスティングにアップロードします( 無料ホスティングおそらくあなたのために働くことはありません) - host.txtファイルには、アップロードしたファイルのアドレスをそれぞれ新しい行に書き込みます。 例えば:
site.org/gate.php
site2.ru/dir/gate.php
somesite.org/newname.php - デフォルトでproxy.exeを起動し、ポート8080で実行し、host.txtファイルからリストをロードします。これは、パラメーターを指定してバイナリを実行することで変更できます。
proxy.exe [port [file_name_with_hosts]] - ブラウザで、HTTPプロキシアドレス127.0.0.1とそれが実行されているポートを書き込みます
これで、ホスティング業者のIPの下でインターネットを歩き回ることができます。
host.txtファイルに複数のアドレスがある場合、プロキシはそれらを自動的に変更します(したがって、IPも変更されます)
1つのIPから作業する必要がある場合は、host.txtファイルに1つのアドレスを残します。 また、このスクリプトを使用すると、残念ながら、 大きなファイル。 スクリプトのアンチチャットからのユーザーnc.STRIEMに感謝します。
プロキシ--Perlに実装されたPHPプロキシ。 それは2つの部分で構成されています。 プロキシの本質は次のとおりです。PHPで記述されたプロキシの最初の部分は、リモートWebサーバー(ホスティング)(pproxy.phpスクリプト)にアップロードされます。 私のローカルホストでは、プロキシの2番目の部分が起動され、Perl(plocal.plスクリプト)で実装されます。 ポートをHTTPプロキシとしてリッスンします。 このローカルHTTPプロキシは、たとえばブラウザによって設定されます。
スクリプト
- pproxy.php-PHPのプロキシの最初のリモート部分:
- local.pl-Perlのプロキシの2番目のローカル部分:
プロキシの使用
アンチチャットでこのスクリプトを使用してプロキシチェーンを構築する方法について読むことができます。 スクリプトのアンチチャットからのユーザーbonsに感謝します。
Anichatphpプロキシ-実際、このプロキシの名前はわかりませんが、アンチチャットからダウンロードしたことを覚えています。 それがその名前の由来です。 このプロキシと他のプロキシの違いは、本格的なプロキシであるということです。ホストに1つのファイルをアップロードして実行すると、プロキシのアドレスとポートが取得され、ブラウザなどに入力する必要があります。動作するphpプロキシが必要なプログラム httpプロトコル。 残念ながら、私は彼女についてこれ以上何も知りません、そして彼女は私のホスティングに取り組むことを拒否しました。 しかし、繰り返しになりますが、チャットでそれについてのレビューがあったことを覚えています=>それは機能しています。 次のリンクからAnichatphpプロキシをダウンロードできます。添付ファイル:proxy.zip(1 KB)
ご不明な点がございましたら、コメント欄でお尋ねください。 また、購読することを忘れないでください RSSニュース「PaperRatBlog」http://henzo.orgで。
この記事に含まれるすべての情報は、習熟以外の目的で使用することはできません。