代理PAC文件:每隔一段时间间隔更改代理?

时间:2012-03-22 07:36:04

标签: proxy mozilla pac

我记得有一段时间回读有关编辑代理pac文件的问题,该文件会在每个设定的时间间隔内切换代理,例如每小时一次。

但是我找不到这个功能或记得怎么做,

我错了,或者这可能是proxy.pac?

我正在使用mozilla。

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

2 个答案:

答案 0 :(得分: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"
    }
}

答案 1 :(得分:1)

或者你可以依靠existing PAC functions

timeRange()可用于指定特定时间范围的不同代理。注意示例将使用'proxy1.example.com'上午8点到下午6点。例如:

if (timeRange(8, 18)) return "PROXY proxy1.example.com:8080";
    else return "DIRECT";