(57)【要約】プロキシ・サーバを検出する方法はインターネット・ウェブ・ブラウザからの接続テーブルの第１コピーを記憶する工程及びユニフォーム・リソース・ロケータに対する要求を、該ウェブ・ブラウザを通じて、開始する工程を含む。該方法は更に、該インターネット・ウェブ・ブラウザからの該接続テーブルの第２コピーを、接続が開いている間に、記憶する工程及び、該接続テーブルの該第１コピーと該接続テーブルの該第２コピーとを比較する工程を含む。
2005525656.tif 000002
【特許請求の範囲】
【請求項１】
プロキシ・サーバを検出する方法であって：
インターネット・ウェブ・ブラウザからの接続テーブルの第1コピーを記憶する工程；
ユニフォーム・リソース・ロケータ（URL）に対する要求を、該ウェブ・ブラウザを通じて、開始する工程；
該インターネット・ウェブ・ブラウザからの該接続テーブルの第２コピーを、接続が開かれている間に、記憶する工程；及び
該接続テーブルの該第１コピーと該接続テーブルの該第２コピーとを比較する工程；
を有することを特徴とする方法。
【請求項２】
請求項１記載の方法であって、更に：
考えられるプロキシ・アドレスのリストを形成する工程；
を有し、該リストが、少なくとも1つのアドレスで、該接続テーブルの該第２コピー上にあり、かつ、該接続テーブルの該第１コピー上にないもの、を有することを特徴とする方法。
【請求項３】
請求項１記載の方法であって、更に：
該インターネット・ウェブ・ブラウザが手作業で構成されたかを判定する工程；
を有することを特徴とする方法。
【請求項４】
請求項２記載の方法であって、更に：
インターネット・プロトコル・アドレスに対する該ＵＲＬを解決する工程；
を有することを特徴とする方法。
【請求項５】
請求項４記載の方法であって、更に：
該インターネット・プロトコル・アドレスと、該考えられるプロキシ・アドレスのリストとを、比較する工程；
を有することを特徴とする方法。
【請求項６】
請求項５記載の方法であって、更に：
該インターネット・プロトコル・アドレスが該考えられるプロキシ・アドレスのリスト上の何れかのアドレスに照合するかを判定する工程；
を有することを特徴とする方法。
【請求項７】
請求項５記載の方法であって、更に：
該考えられるプロキシ・アドレスのリスト上の該アドレスの少なくとも1つに対するプロキシ要求を開始する工程；
を有することを特徴とする方法。
【請求項８】
請求項５記載の方法であって、更に：
該考えられるプロキシ・アドレスのリスト上の該アドレスの少なくとも１つが該プロキシ・サーバのアドレスであることを仮定する工程；
を有することを特徴とする方法。
【請求項９】
請求項１記載の方法であって、該インターネット・ウェブ・ブラウザがウェブ・プロキシ自動検出プロトコル用に設定されることを特徴とする方法。
【請求項１０】
コンピュータ・システムであって：
プロセッサ；及び
該プロセッサに結合されたメモリ；
を有し；
該メモリが該メモリ上にプロキシ検出モジュールを格納させ、該プロキシ検出モジュールが該プロセッサによって実行された場合、該プロセッサに：
インターネット・ウェブ・ブラウザからの接続テーブルの第1コピーを記憶する工程；
ユニフォーム・リソース・ロケータ（URL）に対する要求を、該ウェブ・ブラウザを通じて、開始する工程；
該インターネット・ウェブ・ブラウザからの該接続テーブルの第２コピーを、接続が開かれている間に、記憶する工程；及び
該接続テーブルの該第１コピーと該接続テーブルの該第２コピーとを比較する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１１】
請求項１０記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
考えられるプロキシ・アドレスのリストを形成する工程；
を行わせ、該リストが、少なくとも1つのアドレスで、該接続テーブルの該第２コピー上にあり、かつ、該接続テーブルの該第１コピー上にないもの、を有することを特徴とするコンピュータ・システム。
【請求項１２】
請求項１０記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
該インターネット・ウェブ・ブラウザが手作業で構成されたかを判定する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１３】
請求項１０記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
インターネット・プロトコル・アドレスに対する該ＵＲＬを解決する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１４】
請求項１３記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
該インターネット・プロトコル・アドレスと、該考えられるプロキシ・アドレスのリストとを、比較する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１５】
請求項１４記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
該インターネット・プロトコル・アドレスが該考えられるプロキシ・アドレスのリスト上の何れかのアドレスに照合するかを判定する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１６】
請求項１４記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
該考えられるプロキシ・アドレスのリスト上の該アドレスの少なくとも1つに対するプロキシ要求を開始する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１７】
請求項１４記載のコンピュータ・システムであって、該プロキシ検出モジュールが更に該プロセッサに：
該考えられるプロキシ・アドレスのリスト上の該アドレスの少なくとも１つが該プロキシ・サーバのアドレスであることを仮定する工程；
を行わせることを特徴とするコンピュータ・システム。
【請求項１８】
請求項１０記載のコンピュータ・システムであって、該インターネット・ウェブ・ブラウザがウェブ・プロキシ自動検出プロトコル用に設定されることを特徴とするコンピュータ・システム。
【請求項１９】
コンピュータ判読可能な媒体であって、該媒体上に命令を記憶させているものであり、該命令がプロセッサによって実行された場合、該プロセッサに：
インターネット・ウェブ・ブラウザからの接続テーブルの第1コピーを記憶する工程；
ユニフォーム・リソース・ロケータ（URL）に対する要求を、該ウェブ・ブラウザを通じて、開始する工程；
該インターネット・ウェブ・ブラウザからの該接続テーブルの第２コピーを、接続が開かれている間に、記憶する工程；及び
該接続テーブルの該第１コピーと該接続テーブルの該第２コピーとを比較する工程；
を行わせることを特徴とする、コンピュータ判読可能な媒体。
【請求項２０】
請求項１９記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
考えられるプロキシ・アドレスのリストを形成する工程；
を行わせ、該リストが、少なくとも1つのアドレスで、該接続テーブルの該第２コピー上にあり、かつ、該接続テーブルの該第１コピー上にないもの、を有することを特徴とする、コンピュータ判読可能な媒体。
【請求項２１】
請求項１９記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
該インターネット・ウェブ・ブラウザが手作業で構成されたかを判定する工程；
を行わせることを特徴とするコンピュータ判読可能な媒体。
【請求項２２】
請求項１９記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
インターネット・プロトコル・アドレスに対する該ＵＲＬを解決する工程；
を行わせることを特徴とするコンピュータ判読可能な媒体。
【請求項２３】
請求項２２記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
該インターネット・プロトコル・アドレスと、該考えられるプロキシ・アドレスのリストとを、比較する工程；
を行わせることを特徴とするコンピュータ判読可能な媒体。
【請求項２４】
請求項２３記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
該インターネット・プロトコル・アドレスが該考えられるプロキシ・アドレスのリスト上の何れかのアドレスに照合するかを判定する工程；
を行わせることを特徴とするコンピュータ判読可能な媒体。
【請求項２５】
請求項２３記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
該考えられるプロキシ・アドレスのリスト上の該アドレスの少なくとも1つに対するプロキシ要求を開始する工程；
を行わせることを特徴とするコンピュータ判読可能な媒体。
【請求項２６】
請求項２３記載のコンピュータ判読可能な媒体であって、該命令が更に該プロセッサに：
該考えられるプロキシ・アドレスのリスト上の該アドレスの少なくとも１つが該プロキシ・サーバのアドレスであることを仮定する工程；
を行わせることを特徴とするコンピュータ判読可能な媒体。
【請求項２７】
請求項１９記載のコンピュータ判読可能な媒体であって、該インターネット・ウェブ・ブラウザがウェブ・プロキシ自動検出プロトコル用に設定されることを特徴とするコンピュータ判読可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一実施例はプロキシ・サーバに関する。特に、本発明の一実施例はプロキシ・サーバの自動検出に関する。
【背景技術】
【０００２】
多くのコンピュータはインターネットをプロキシ・サーバを介してアクセスする。プロキシ・サーバは、インターネット・ウェブ・ブラウザのような、クライアント・アプリケーションとリアル・インターネット・コンテンツ・サーバとに間に位置しているサーバである。該プロキシ・サーバは該リアル・サーバに対する全ての要求を傍受して該プロキシ・サーバが自ら該要求を充足し得るかを確かめる。充足し得ない場合は、該プロキシ・サーバは該要求を該リアル・サーバに転送する。
【０００３】
プロキシ・サーバは2つの主たる目的を有する。プロキシ・サーバは性能を向上させ得るが、それは該プロキシ・サーバが特定の時間中、全ての要求の上記結果を保存又はキャッシュするからである。要求が記憶コンテンツによって充足し得る場合は、該コンテンツをウェブ・サーバから取り出すことを要するものでなく、その結果、応答時間が速くなる。プロキシ・サーバは更に、要求をフィルタ化するのに用い得る。例えば、企業がプロキシ・サーバを用いてその従業員が特定のウェブ・サイト群にアクセスすることを妨げることが可能である。
【０００４】
インターネットに対してプロキシ・サーバを介して結合されたコンピュータについては、インターネット要求は全て、最初に該プロキシ・サーバに向けられることを要する。インターネットを、マイクロソフト（Microsoft）社のインターネット・エクスプローラ（Internet  Explorer）のような、インターネット・ブラウザを通じて、アクセスする場合、該ブラウザは通常、ユーザ介入なしで該ブラウザを検出するよう設定される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、アプリケーション・プログラムがインターネット上で、ブラウザ又はブラウザの通信モジュールを用いることなく、直接通信することを要する場合に問題が発生する。例えば、いくつかのプログラムはインターネットに直接アクセスして更新を備える。これらのプログラムが該プロキシを検出する一方法に、該コンピュータ上で用いられる該ブラウザ用設定を調べることがある。インターネット・エクスプローラはそのプロキシ設定をレジストリに周知でかつ文書化された位置に保持する。同様な設定で、ネットスケープ（Netscape）及び別のインターネット・ブラウザ用のものが利用可能である。該プロキシ位置が該ブラウザ上で、手作業で構成された場合、該プロキシを判定するユーザ介入は何も要するものでない。
【０００６】
問題は、大部分のブラウザ用の考えられる設定の１つが自動構成スクリプト又はウェブ・プロキシ自動検出プロトコル（「WPAD」）であるということである。自動構成スクリプトの場合、ウェブ・ブラウザの設定は、ユニフォーム・リソース・ロケータ（「URL」）で、実際のプロキシを判定するジャバ・スクリプト（Java（登録商標）  Script）を見出し得るもの、から成る。WPADは、プロトコルで、該プロトコルにおいて該スクリプト用URLを、URLを予め構成することを要することなく、発見し得る。WPADは現在、インターネット・エクスプローラのデフォールト設定となっている。これらの場合の何れでも、実際のプロキシは該設定とともに記憶されるものでない。その代わりに、該ブラウザは該スクリプトを見出し、該スクリプトを、該ブラウザがURLに接続することを要する都度、実行する。該スクリプトは特定のURLに対する該プロキシを解決する方法を有する。
【０００７】
上記2つの設定が該ブラウザに用いられる場合、プログラムは、該プロキシを判定するよう、ユーザによる手作業の介入を要する。しかしながら、多くのユーザは、プロキシが何であるかも知らず、適切な情報を備えるのに多大な困難を有する。
【課題を解決するための手段】
【０００８】
上記に基づいて、プログラムによってプロキシ・サーバをユーザ介入なしで、インターネット・ブラウザがプロキシを検出するよう「自動」モードに設定された場合も、自動検出するシステム及び方法に対する必要性が存在する。
【発明を実施するための最良の形態】
【０００９】
〔実施例〕
本発明の一実施例はプロキシ・サーバを、インターネット・ブラウザの接続テーブルを、該ブラウザが該プロキシに対する接続を作成する前と該接続を作成した後とを比較することによって、検出する。
【００１０】
図１は本発明の一実施例による通信システム１０の概略図である。システム１０はインターネット４０にプロキシ・サーバ３０を介して結合されたコンピュータ２０を有する。
【００１１】
コンピュータ２０は、如何なる種類のコンピュータ又は別の装置で、インターネット４０をアクセスし、ソフトウェア工程を実行することができるもの、でもあり得る。一実施例では、コンピュータ２０は、プロセッサ、メモリ及び通信インタフェースを有する。コンピュータ２０はオペレーティング・システム及び、マイクロソフト（Microsoft）社からのインターネット・エクスプローラ・ブラウザのような、インターネット・ウェブ・ブラウザを実行する。一実施例では、該プロセッサはインテル（Intel）社からのペンティアム（登録商標）（Pentium（登録商標））4プロセッサであり、オペレーティング・システムはマイクロソフト社からのウィンドウズ（登録商標）（Windows（登録商標））XPである。コンピュータ２０は更に、アプリケーション・プログラム又は別の機能で、インターネット・ウェブ・ブラウザを用いることなく、直接インターネット４０をアクセスするもの、を実行する。
【００１２】
コンピュータ２０はインターネット４０をそのウェブ・ブラウザを通じてアクセスする場合、プロキシ・サーバ３０を既知の方法で検出する。該ウェブ・ブラウザは手作業で構成され得るものであり、その場合、該プロキシを直接判定し得る。しかしながら、該ウェブ・ブラウザがウェブ・プロキシ自動検出プロトコル（「WPAD」）用に設定された場合、自動構成スクリプトを用いるよう設定された場合、又は、如何なる別の方法で、該プロキシ・サーバが直接検出されることを可能にしないもの、でも設定された場合には、本発明の一実施例について以下に記載した機能は該プロキシ・サーバを検出するようコンピュータ２０によって実行されるプログラムによって用い得る。
【００１３】
図２A及び２Bは本発明の一実施例によってコンピュータ２０によって、ウェブ・サイトをアクセスする場合にプロキシ・サーバを検出するために実行される機能の流れ図である。一実施例では、該機能はメモリに記憶され、プロセッサによって実行されるソフトウェアによって実施される。別の実施例では、該機能はハードウェア、又はハードウェアとソフトウェアとの如何なる組み合わせによっても行い得る。一実施例では、該機能は、コンピュータ２０上のアプリケーション・プログラムで、コンピュータ２０上のインターネット・ブラウザを経由することなく直接インターネット４０をアクセスすることを要するもの、によって実行される。一実施例では、本発明の該機能はプロキシ検出モジュールで、該アプリケーション・プログラムの一部であるか、該アプリケーション・プログラムとインタフェースする、ソフトウェア・モジュールであり得るもの、に組み入れられる。該プロキシ検出モジュールはコンピュータ２０のメモリに記憶し得るものであり、コンピュータ２０の該プロセッサによって実行し得る。
【００１４】
ボックス１００では、ウェブ・サイトのURLで、プロキシ検出モジュールがアクセスしようとするもの、が判定される。一実施例では、これはアプリケーション・プログラム自体によって備えられる。URL要求の方式すなわちプロトコルも判定されるが、それはプロキシ検出モジュールが検出しようとしているプロキシ・サーバが該方式によってかわってくることがあり得るからである。考えられるプロトコルの例は、ハイパ・テキスト転送プロトコル（「http」）、SSL  http（「https」）、ファイル転送プロトコル（「ftp」）などである。
【００１５】
ボックス１１０では、インターネット・ブラウザの通信モジュールに対するレジストリ設定又は別の構成データが判定される。
【００１６】
判定点１２０では、プロキシ・サーバがインターネット・ブラウザ上で、手作業で構成されたか否か判定される。この判定結果が肯定の場合、ボックス１３０で、プロキシ・サーバが、ブラウザにおける情報を読み取ることによって判定される。
【００１７】
判定点１２０で、プロキシ・サーバがインターネット・ブラウザ上で手作業で構成されたものでない場合（例えば、ウェブ・ブラウザがWPAD用に設定された場合）、ボックス１４０で、ウェブ・ブラウザから伝送制御プロトコル/インターネット・プロトコル（TCP/IP）接続テーブルの第１コピーが、該プロキシ検出モジュールによって取り出され、記憶される。一実施例では、コンピュータ２０のオペレーティング・システムがアプリケーション・プログラム・インタフェース（「API」）を備えて接続テーブルを得る。別の実施例では、接続テーブルを得るよう、NETSTATのようなステータス・プログラムを呼び出し得るものであり、出力を解析し得る。
【００１８】
ボックス１５０では、プロキシ検出モジュールはインターネット・ブラウザの通信モジュールを呼び出し、ボックス１００で判定されたURLに対する要求を行う。これによって接続が開かれる。インターネット・ブラウザがインターネット・エクスプローラである一実施例では、通信モジュールはWINInetである。一実施例では、URLに対する要求は「HEAD」である。別の実施では、該要求は「GET」又は「POST」であるが、これらの種類の要求は不必要なデータを生成するものである。インターネット・ブラウザがURLと通信することができない場合、当該処理は終了する。
【００１９】
ボックス１６０では、プロキシ検出モジュールはTCP/IP接続テーブルの第２コピーをインターネット・ブラウザから、ボックス１５０で開かれた接続が閉じられる前に、取り出し、記憶する。URL要求は更に、閉じられ、通信モジュールが開放される。
【００２０】
ボックス１７０では、接続テーブルの第１コピーと接続テーブルの第２コピーとの間の差異が判定される。接続テーブルはIPアドレスのリストを含む。両方のコピーに見出されるアドレスは全て除外され、残りのIPアドレスが考えられるプロキシIPアドレス・リストを構成する。一実施例では、通常、IPアドレスで、両方の接続テーブルに共通でなく、該考えられるプロキシIPアドレス・リストを形成するもの、は２つ又は３つしか存在しない。一実施例では、該リスト上の該IPアドレスの１つはプロキシ・サーバ・アドレスであり、１つは、インターネット・ブラウザの自動プロキシ・スクリプトがロードされたホストのアドレスである。
【００２１】
ボックス１８０では、ボックス１００で判定されたURLがその相当するIPアドレス及びポートに解決（すなわち、変換）される。これによって、URLと通信テーブルにおけるIPアドレスのリストとの比較を容易にすることが可能になる。
【００２２】
考えられるプロキシIPアドレス・リストにおけるIPアドレス毎に、プロキシが検出されるまで（ボックス１９０）、ボックス１８０で要求されたIPアドレスが該考えられるプロキシIPアドレス上のIPアドレスと比較される（ボックス２００）。照合がある場合、ボックス２１０で、所望のホストとの通信にはプロキシ・サーバは何も要するものでなく、当該処理は終了する。プロキシ・サーバは要するものでないことがあり得るがそれは、例えば、URLが、プロキシ・サーバの後ろのイントラネット上にあるからである。
【００２３】
ボックス２１０で、特定のIPアドレスに対する照合がない場合、プロキシ検出モジュールはIPアドレスとポートとを、ボックス２２０で有効なプロキシ要求を行う（すなわち、接続を要求する）ことによって問い合わせる。該要求が正常の場合、プロキシ・サーバは検出され、プロキシ検出モジュールはプロキシのアドレス及びポートを判定し、当該処理は完了する。一実施例では、考えられるプロキシ・アドレスにおけるIPアドレスの１つによって正常な要求を、プロキシが必要でないか、未知のエラーがある場合以外に、生じる。
【００２４】
別の実施例では、ボックス２２０で、IPアドレスを問い合わせる代わりに、通信プログラムは、該アドレスが正しいと仮定する場合、所望の通信を試行する。正常の場合、該問い合わせは行われなくとも良い。
【００２５】
本発明のいくつかの実施例を本明細書及び特許請求の範囲に特に図示及び/又は記載する。しかしながら、本発明の修正及び変形は上記の開示内容によって網羅され、本特許請求の範囲の要部の範囲内に、本発明の趣旨及び意図する範囲から逸脱することなく、収まるものであることが分かる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例による通信システムの概略図である。
【図２Ａ】本発明の一実施例によってコンピュータによって、ウェブ・サイトをアクセスする場合にプロキシ・サーバを検出するために実行される機能の流れ図である。
【図２Ｂ】本発明の一実施例によってコンピュータによって、ウェブ・サイトをアクセスする場合にプロキシ・サーバを検出するために実行される機能の流れ図である。
【図１】
2005525656.tif 000003
【図２Ａ】
2005525656.tif 000004
【図２Ｂ】
2005525656.tif 000005
【国際調査報告】
2005525656.tif 000006
2005525656.tif 000007
2005525656.tif 000008