0

ブラウザの JavaScript コンソールから FindProxyForURL(url, host) 関数を手動で実行して、プロキシ自動構成 (PAC) スクリプトをテストすることはできますか?

コンソールからPAC 関数(dnsDomainIs、shExpMatch、isInNet など)の内部実装にアクセスできますか?

あるいは、これらの関数を標準の JavaScript 内に実装して、FindProxyForURL 関数を手動で実行できるようにすることはできますか?

ブラウザー内でproxy.pac スクリプトをデバッグする唯一の方法は、alert() ステートメントを追加して、ブラウザーに内部的に実行させることです。ブレークポイントを追加し、FindProxyForURL 関数を手動でステップ実行できると、デバッグが容易になります。

pacparser (Spidermonkey を使用) やautoprox ( Microsoft の実装を使用)など、PAC スクリプトをテストするための多くの外部ツールがあります。

同様の質問が寄せられています:

PACで使用されているプロキシを検出する
方法 PAC(proxy auto config) のアクセス ログを取得する方法
autoproxy (PAC) javascript を alert() でデバッグするには?
PAC ファイルを実行するための関数を含む Javascript ファイルは、Windows のどこにありますか?

4

1 に答える 1

2

一部の PAC 関数は pactester によって実装されており、pac_utils.js で利用できます: https://github.com/manugarg/pactester/blob/master/pac_utils.js

ただし、 pactester readmeに記載されているように、関数 dnsResolve および myIpAddress がありません。

PAC ファイルは特定の JavaScript 関数を使用します。これらの関数は、このツールに含まれる pac_utils.js ファイルで定義されています (このファイルは、Mozilla ソース コードの別のファイルを使用して生成されました)。また、JavaScript には PAC ファイルの「dnsResolve」および「myIpAddress」関数で必要な DNS 解決機能がないため、これらの関数は perl で定義され、JavaScript コンテキストにエクスポートされています。

Web サービスを使用したこれらの関数の実装がありますが、独自のサーバーを実行しないとローカル アドレスでは機能しません。

dnsResolve:
クライアント側 Javascript を使用して DNS ルックアップ (ホスト名から IP アドレスへ) を実行できますか?
JavaScript を使用して DNS ルックアップを実行し、ホスト名を IP アドレスに解決する

myIpAddress:
JavaScript のみを使用してクライアントの IP アドレスを取得する方法は?

これらの関数のネイティブ実装をホストするPAC サンドボックス環境内でスクリプトを手動で実行するためのアクセスをブラウザーに許可することが可能かどうかはわかりません。

したがって、ブラウザのサンドボックスで実行される PAC ファイルは、JavaScript プログラミング言語全体にアクセスすることはできません。代わりに、PAC ファイルの機能は、カスタムのサンボックス化された関数セットを使用してブラウザーに実装されます。

于 2016-01-29T07:43:29.953 に答える