2

時間単位など、設定された時間間隔ごとにプロキシを切り替えるプロキシpacファイルの編集についてしばらく前に読んだことを覚えています。

しかし、関数が見つからないか、これを行う方法を思い出せません。

私は間違っていますか、それともproxy.pacでこれは可能ですか?

私はMozillaを使用しています。

更新:FindProxyForURL()HTTPリクエストが送信されるたびに呼び出されますか?

4

2 に答える 2

3

PACファイルは、フェッチされるリソースのURLを取得し、そのリソースに使用する(またはプロキシをまったくfunction FindProxyForURL(url, host) {}使用しない)プロキシを指定する文字列を返す単純なJavascript関数です。 プロトコルに関係なく、すべてのブラウザ要求は関数を通過します。DIRECT

その機能ブロックでは、現在の時刻を照会し、どのプロキシを返すかを決定できるはずです。

例えば:

function FindProxyForURL(url, host) {
    // If URL has no dots in host name, send traffic direct.
    if (isPlainHostName(host)) return "DIRECT";

    // Known local Top Level Domains are direct
    if(/\.(local|lcl|domain|grp|localdomain)(\:\d+)?($|\/)/i.test(url))
        return "DIRECT";

    // Split traffic depending on the time
    var dTime = new Date();
    var hours = dTime.getHours();
    if (hours < 12) {
        // From midnight to lunchtime, use Proxy A
        // which is a standard HTTP proxy on port 8080
        return "PROXY proxyA.example.com:8080"
    } else {
        // From lunchtime to midnight, use Proxy B
        // which is a Socks5 proxy on port 777
        return "SOCKS5 proxyB.example.com:777"
    }
}
于 2012-03-22T07:41:07.267 に答える
1

または、既存のPAC機能に依存することもできます。

timeRange()を使用して、特定の時間範囲にさまざまなプロキシを指定できます。例では、「proxy1.example.com」を午前8時から午後6時まで利用することに注意してください。例:

if (timeRange(8, 18)) return "PROXY proxy1.example.com:8080";
    else return "DIRECT";
于 2012-04-17T23:51:54.240 に答える