用代理脚本 .pac 管理你的代理

来源:百度文库 编辑:神马文学网 时间:2024/04/27 14:54:52

我以前一般用 flock 设置代理,打不开站点,专用 flock。哎,flock 作者知道俺这么糟蹋人家的 socialbrowser,得气疯了,也怪 flock 都是 blogger flickr 这样国外的blog工具,自定义blog工具功能做起来又麻烦。主要是俺写 blog 一般在局域网,暂时感受不到客户端的必要性…

原因很简单,浏览器中切换代理比较麻烦。Maxthon很方便,Opera也有此功能,但有bug —挂上代理没问题,换掉就不起作用!:(firefox 必须依托插件xyzproxy,firefox插件对版本的挑剔令人烦不胜烦…怎么办?不想再回到 Maxthon(如果使用 gecko engine 功能完善的话,倒是不妨考虑一下…)

今天看到这个方法,不错。将下面这段保存为 proxy.pac(名字无所谓)

function FindProxyForURL(url, host)

{

url = url.toLowerCase ();

host = host.toLowerCase();

if(dnsDomainIs(host,”wikipedia.org”)||dnsDomainIs(host,”blogspot.com”|| dnsDomainIs(host,”wordpress.com”)

)

return “PROXY 194.247.61.6:80″;

else return “DIRECT”;

}

然后在浏览器的代理设置中,选择自动代理脚本。输入类似 file:///C:/proxy.pac 这样的路径即可。

注:在我测试中出现很多奇怪的问题,经常不能使用:

1.8080 端口不行?直接设置代理ip可以,.pac 代理脚本就是不行,奇怪。

2.上面那个 UK 194.247.61.6:80 代理,.pac 中 wordpress.com不行,直接设置可以。郁闷,代理脚本的处理是不是有bug啊…

3.经常出现直接设置代理可以,而脚本不行的情况。

资料:

http://www.microsoft.com/technet/prodtechnol/ie/ieak/techinfo/deploy/60/en/corpexjs.mspx

更多代理脚本:

firefox中设置特定网站才使用代理

以下是/etc/privoxy/proxy.pac文件内容:

function FindProxyForURL(url, host)

{

url = url.toLowerCase();

host = host.toLowerCase();

if(dnsDomainIs(host,”.google.com”)) return “PROXY localhost:8118″;

else if(dnsDomainIs(host,”.gmail.com”)) return “PROXYlocalhost:8118″;

else if(dnsDomainIs(host,”wikipedia.org”)) return “PROXYlocalhost:8118″;

else if(shExpMatch(url,”*q=cache:*”)) return “PROXY localhost:8118″;

else return “DIRECT”;

}

设定访问三个域名、一个URL模式匹配的地址时,使用privoxy的代理,可以按照这个样式,随意添加更多网站。

然后在firefox的“首选项”菜单中,打开“连接设置”对话框,选择“自动代理配置URL”,在后面的输入框中,填入配置文件地址,我这个就是file:///etc/privoxy/proxy.pac。

这样除了访问满足配置文件中设定条件的域名,会使用privoxy代理,其他都直接访问。以上办法,由niqiu网友提供。 –Farm(talk) 23:41 2005年10月22日 (UTC)

guoshuang2006-03-10+下面转一些相关资料:

代理服务器自动配置脚本(.PAC)的网络写法综述

http://windtear.net/archives/2006/03/07/000932.html

代理服务器自动配置脚本(.PAC)的网络写法综述

今天水木新软俱乐部讨论起这个 这里就提一下自动配置脚本的配置写法

1. 网络写法 兼容性最好 如

http://proxy.ipcn.org/ipcn.pac

2. 本地文件写法 file:// IE两个/就行 firefox需要三个/

file:///c:/proxy/ipcn.pac

file://c:/proxy/ipcn.pac

如果遇到不行的情况 可以在自动配置脚本ipcn.pac里面加入 alert(“test”); 便于测试

3. 网上邻居写法 这个是今天讨论时想要测试确认的

file://\192.168.1.11pubproxyipcn.pac

file://\ipcnserver2pubproxyipcn.pac

当时用ie测的 firefox 忘了测了

最后作为总结 考虑到不同操作系统不同浏览器的兼容性问题

第一种网络写法 http://proxy.ipcn.org/ipcn.pac 兼容性最好

基本支持自动配置脚本的都会支持这个 其他的如果遇到有细节上的不同 多试两把就行了

具体自动配置脚本(.PAC)的写法可以参考Netscape的官方文档 (就是一个特殊的javascript)

Navigator Proxy Auto-Config File Format

http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html

本blog曾写过的相关文章: 其中SPS(Super Proxy Script)比较好玩

[IPCN] proxy.ipcn.org 使用设置调整公告

http://windtear.net/archives/2004/02/16/000508.html

squid ipcn.pac use URLHash2 of SPS(Super Proxy Script) – removeipcnauth

http://windtear.net/archives/2004/04/28/000474.html

IPCN简化设置Proxy

http://windtear.net/archives/2004/05/09/000471.html

花刺代理验证(ProxyThorn) v1.5.3 使用体验

http://windtear.net/archives/2004/12/20/000529.html

[IPCN] proxy.ipcn.org 允许使用访问更新

http://windtear.net/archives/2005/01/08/000549.html

via http://windtear.net/archives/2006/03/07/000932.html

[Edit on 2006-3-11 7:34:25 By guoshuang]