Windows上,在IE中设置某某pac链接,就能实现代理效果,是利用什么原理?

发布于 2022-09-03 13:19:45 字数 471 浏览 14 评论 0

描述问题

由使用某代理服务想到的

比如提供代理服务,只需要在IE浏览器中如下设置:

  1. Internet选项

  2. 连接

  3. 局域网设置

  4. 输入一段以pac结尾的连接
    即可实现代理

是利用了Windows/IE的什么特性? 是什么原理?

上下文环境

>= windows7

重现

相关代码

报错信息

相关截图

已经尝试哪些方法仍然没有解决(附上相关链接)

自己猜想是:

  1. IE访问该pac网址

  2. 所有流量通过该服务器, 有的流量代理之,国内网站则不代理

问题简化

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

行雁书 2022-09-10 13:19:45

你的理解是对的 其实pac都是js文件

以下的proxy.pac摘自某个软件的一部分

function FindProxyForURL(url, host) {
    var autoproxy = 'PROXY GOAGENT_LISTEN';
    var blackhole = 'PROXY PAC_LISTEN';
    if (dnsDomainIs(host, '.google.com') ||
...
...
        host == 'ow.ly' ||
        host == 'po.st' ||
        host == 'goo.gl')
    {
        return autoproxy;
    }
    if (host == 'pagead2.googlesyndication.com' ||
        host == 'p.tanx.com' ||
        host == 'a.alimama.cn' ||
        FindProxyForURLByAdblock(url, host) != 'DIRECT')
    {
        return blackhole;
    } else {
        return FindProxyForURLByAutoProxy(url, host);
    }
}

// AUTO-GENERATED RULES, DO NOT MODIFY!
function FindProxyForURLByAdblock(url, host) {return "DIRECT";}

function FindProxyForURLByAutoProxy(url, host) {
    if (url.indexOf("http://ime.baidu.jp") == 0) return "DIRECT";
    if (dnsDomainIs(host, ".zhongsou.com") || host == "zhongsou.com") return "DIRECT";
    if (dnsDomainIs(host, ".youdao.com") || host == "youdao.com") return "DIRECT";
    if (dnsDomainIs(host, ".yahoo.cn") || host == "yahoo.cn") return "DIRECT";
    if (dnsDomainIs(host, ".weibo.com") || host == "weibo.com") return "DIRECT";
...
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文