pac
pac copied to clipboard
我想排除或添加一些域名该怎么修改脚本?(不是排除IP)
谢谢作者的项目,有很大的帮助。 我想排除或添加一些域名该怎么修改脚本?(不是排除IP) 以域名优先级最高。
你可以把你想黑白名单的域名放进一个 Set 里面,然后在 function FindProxyForURL 最前面插入判断并直接返回 proxy 或 direct。
你可以把你想黑白名单的域名放进一个 Set 里面,然后在
function FindProxyForURL最前面插入判断并直接返回proxy或direct。
我发现现在的脚本已经自带BLACKPAT,但是不知道该怎么填写。我直接填了一个域名以后,整个pac都失效了,无法联网。
现在的脚本里的 BLACKPAT 是一个数组,数组里每一项是一个通配符表达式(见 shExpMatch()),请确保你的 JavaScript 语法是正确的,否则整个 PAC 文件会解析失败。
现在的脚本里的
BLACKPAT是一个数组,数组里每一项是一个通配符表达式(见shExpMatch()),请确保你的 JavaScript 语法是正确的,否则整个 PAC 文件会解析失败。
var BLACKPAT = ["*.ipip.net"];
这样填写全网域名解析仍然生效,但是ipip.net仍然是直连,具体该怎么办呢?
我大概读懂几个function会把array中的string一一匹配,有则返回true,则返回proxy。但是实在不知道数组中的这个string该怎么填,试验了好几种写法也不见效。
刚刚想了想,可能是结尾也没跟着匹配,所以返回了false。
"*.ipip.net/*" 测试成功。
但不知是否有更好的写法?还望能倾囊相授。
BLACKPAT 和 WHITEPAT 是匹配整个 URL 的,如果想仅靠域名匹配的话稍微麻烦点,我把域名按 zone 重新组合成了前面的 DOMAINS 变量,格式如下:
var DOMAINS = {
"com": {
"example": 0,
"google": {
"@": 0,
"mtalk": 1
}
}
};
搜索的时候从右往左,例如 example.com 就会按顺序找到 com -> example 返回 0(黑名单走代理),而 mtalk.google.com 就会返回 1(直连)。这个结构要手改可能不那么容易,我后面升级一下生成脚本加入自定义规则的支持吧。
BLACKPAT和WHITEPAT是匹配整个 URL 的,如果想仅靠域名匹配的话稍微麻烦点,我把域名按 zone 重新组合成了前面的DOMAINS变量,格式如下:var DOMAINS = { "com": { "example": 0, "google": { "@": 0, "mtalk": 1 } } };搜索的时候从右往左,例如
example.com就会按顺序找到com -> example返回 0(黑名单走代理),而mtalk.google.com就会返回 1(直连)。这个结构要手改可能不那么容易,我后面升级一下生成脚本加入自定义规则的支持吧。
如果能直接修改就更好了,方便自定义。
因为user-rule.txt是强制和gwflist绑定的,无法和自定义pac绑定。一旦修改user-rule.txt,必须更新gfwlist,就把自定义pac给覆盖了,所以只能在自定义pac里面手动修改。
其实绝大部分网站按照IP分流已经非常完美,只有极个别网站因为某些原因要手动指定一下,能支持自定义网站,当然就很方便了。