描述问题
由使用某代理服务想到的
比如提供代理服务,只需要在IE浏览器中如下设置:
Internet选项
连接
局域网设置
输入一段以pac结尾的连接
即可实现代理
是利用了Windows/IE的什么特性? 是什么原理?
上下文环境
>= windows7
重现
相关代码
报错信息
相关截图
已经尝试哪些方法仍然没有解决(附上相关链接)
自己猜想是:
IE访问该pac网址
所有流量通过该服务器, 有的流量代理之,国内网站则不代理
问题简化
你的理解是对的 其实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";
...
...