Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

我想排除或添加一些域名该怎么修改脚本?(不是排除IP) #8

Open
F-Light opened this issue Feb 5, 2020 · 7 comments

Comments

@F-Light
Copy link

F-Light commented Feb 5, 2020

谢谢作者的项目,有很大的帮助。
我想排除或添加一些域名该怎么修改脚本?(不是排除IP)
以域名优先级最高。

@iBug
Copy link
Owner

iBug commented Feb 10, 2020

你可以把你想黑白名单的域名放进一个 Set 里面,然后在 function FindProxyForURL 最前面插入判断并直接返回 proxydirect

@timeneverdie
Copy link

你可以把你想黑白名单的域名放进一个 Set 里面,然后在 function FindProxyForURL 最前面插入判断并直接返回 proxydirect

我发现现在的脚本已经自带BLACKPAT,但是不知道该怎么填写。我直接填了一个域名以后,整个pac都失效了,无法联网。

@iBug
Copy link
Owner

iBug commented Nov 4, 2020

现在的脚本里的 BLACKPAT 是一个数组,数组里每一项是一个通配符表达式(见 shExpMatch()),请确保你的 JavaScript 语法是正确的,否则整个 PAC 文件会解析失败。

@timeneverdie
Copy link

现在的脚本里的 BLACKPAT 是一个数组,数组里每一项是一个通配符表达式(见 shExpMatch()),请确保你的 JavaScript 语法是正确的,否则整个 PAC 文件会解析失败。

var BLACKPAT = ["*.ipip.net"];

这样填写全网域名解析仍然生效,但是ipip.net仍然是直连,具体该怎么办呢?

我大概读懂几个function会把array中的string一一匹配,有则返回true,则返回proxy。但是实在不知道数组中的这个string该怎么填,试验了好几种写法也不见效。

@timeneverdie
Copy link

刚刚想了想,可能是结尾也没跟着匹配,所以返回了false。

"*.ipip.net/*" 测试成功。

但不知是否有更好的写法?还望能倾囊相授。

@iBug
Copy link
Owner

iBug commented Nov 5, 2020

BLACKPATWHITEPAT 是匹配整个 URL 的,如果想仅靠域名匹配的话稍微麻烦点,我把域名按 zone 重新组合成了前面的 DOMAINS 变量,格式如下:

var DOMAINS = {
  "com": {
    "example": 0,
    "google": {
      "@": 0,
      "mtalk": 1
    }
  }
};

搜索的时候从右往左,例如 example.com 就会按顺序找到 com -> example 返回 0(黑名单走代理),而 mtalk.google.com 就会返回 1(直连)。这个结构要手改可能不那么容易,我后面升级一下生成脚本加入自定义规则的支持吧。

@timeneverdie
Copy link

timeneverdie commented Nov 5, 2020

BLACKPATWHITEPAT 是匹配整个 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分流已经非常完美,只有极个别网站因为某些原因要手动指定一下,能支持自定义网站,当然就很方便了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants