2

我记得前段时间阅读了有关编辑代理 pac 文件的信息,该文件将在每个设定的时间间隔(例如每小时)切换代理。

但我找不到功能或不记得如何做到这一点,

我弄错了还是proxy.pac可以做到这一点?

我正在使用Mozilla。

更新:FindProxyForURL()每次发出 HTTP 请求时都会调用?

4

2 回答 2

3

PAC 文件只是一个 Javascript 函数function FindProxyForURL(url, host) {},它获取正在获取的资源的 URL,并返回一个字符串,指定该资源使用哪个代理(或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()可用于为特定时间范围指定不同的代理。注意示例将在上午 8 点到下午 6 点使用“proxy1.example.com”。例子:

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