Monday, September 24, 2007

巧用代理自动配置脚本

什么是代理自动配置脚本?想必blogger上的朋友对它都不会陌生。blogger被封锁之初,网上云集的各路方法之中就有它的身影。相比修改host文件的方法,我觉得使用代理自动配置脚本更方便,更省心。
这种代理自动配置脚本和普通代理设置究竟有何区别?
普通的代理设置无法区别对待需要使用代理访问的网站和可以直接连接访问的网站,同一时刻,要么只能都用代理访问,要么全部都不用代理。
而代理自动配置脚本Proxy Auto-Config File形如:
function FindProxyForURL(url, host){
host=host.toLowerCase();
if(
dnsDomainIs(host,"wikipedia.org")
|| isInNet(host, "123.123.123.0")
) return "PROXY 127.0.0.1:3456";
else return "Direct";
}

当访问一个网址时,浏览器会加载这个脚本判断目标地址是否属于域名“wikipeida.org”或者服务器ip范围在123.123.123.0。如果是,则通过代理服务器127.0.0.1(端口3456) 访问该地址,如果不是则直接访问。这样就实现了根据访问目的不同自动选择是否使用代理。
当时为了突破blogger封锁,网上流传的是这样一段代码:
function FindProxyForURL(url,host){
if(dnsDomainIs(host, ".blogspot.com")){
return "PROXY 72.14.219.190:80";
}
}

很多人反映说在firefox下可用,在ie下不行,其实是设置错误的问题。
在Internet Explorer中按如下途径设置:工具-选项-Internet 选项-连接-局域网设置,勾选使用自动配置脚本 。在FireFox中:工具-选项-高级-网络-连接设置-自动代理配置URL。这里,既可以填写一个网址,如http://example.com/proxy.pac,也可以使用本地路径,如放在D盘中一个PAC文件 。但IE和Firefox的书写方式略有不同:
  • IE:file://d:\temp\pedia.pac
  • Firefox:file:///d:/temp/pedia.pac
除了突破blogger封锁之外,我们还可以用此方法访问wikipedia,wordpress.com等一批被封锁的网站,当然前提是先找一个稳定可靠的长期代理。关于如何自己写代理自动配置脚本,网上有很多教程,搜一搜即可,难度并不大。

update:谢谢winsphix分享了他的配置脚本
function FindProxyForURL(url,host)
{
host=host.toLowerCase();
url = url.toLowerCase();
if(dnsDomainIs(host, ".blogspot.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, ".googlepages.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, "pages.google.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, ".wikipedia.org"))
return "PROXY 66.230.200.101:80";
if(dnsDomainIs(host, ".wordpress.com"))
return "PROXY 72.232.101.41:80";
if(dnsDomainIs(host, ".livejournal.com"))
return "PROXY 204.9.177.19:80";
else
return "DIRECT";
}

15 Comments:

Anonymous Geuro said...

差点忘了,祝你中秋快乐.

September 25, 2007 at 4:39 AM  
Anonymous Geuro said...

我在ie7里成功了,ie6里却不行.原来是这样的.看来我以前都误导别人了.

September 25, 2007 at 4:39 AM  
Anonymous winsphinX said...

这个办法一直在用,只是代理地址难找
我把我的贡献一下:

function FindProxyForURL(url,host)
{
host=host.toLowerCase();
url = url.toLowerCase();
if(dnsDomainIs(host, ".blogspot.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, ".googlepages.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, "pages.google.com"))
return "PROXY 72.14.219.190:80";
if(dnsDomainIs(host, ".wikipedia.org"))
return "PROXY 66.230.200.101:80";
if(dnsDomainIs(host, ".wordpress.com"))
return "PROXY 72.232.101.41:80";
if(dnsDomainIs(host, ".livejournal.com"))
return "PROXY 204.9.177.19:80";
else
return "DIRECT";
}

September 25, 2007 at 5:45 AM  
Anonymous Vane said...

@winsphix:谢谢你的分享,有些代理确实挺难找的。

September 25, 2007 at 7:46 AM  
Anonymous Qiu Xianli said...

很好!谢谢,
顺祝中秋快乐!

September 25, 2007 at 10:02 AM  
Anonymous 一楠亚夏 said...

哎!都是封锁惹祸!节日快乐!

September 25, 2007 at 5:19 PM  
Anonymous Chen Bo said...

感谢分享,尤其是update,我现在起可以方便地访问wikipedia了。呵

September 26, 2007 at 7:03 PM  
Anonymous Chen Bo said...

不过,纵使如此,http://zh.wikipedia.org/
还是无论访问的。呵

September 26, 2007 at 7:05 PM  
Anonymous winsphinX said...

因为zh.wikipedia.org 整个被作为关键词过滤,这个是没有办法的

September 26, 2007 at 8:43 PM  
Anonymous ●毛毛虫● said...

很高兴看到这个方法,谢谢Vane分享,握住于又可以访问自己的博客了。

September 26, 2007 at 11:53 PM  
Anonymous ●毛毛虫● said...

另外,好像你的友链里怎么没有我的名字啊?

September 26, 2007 at 11:56 PM  
Anonymous Vane said...

@了了and一楠:迟来的中秋快乐!
@毛毛虫:不好意思,因为几次修改模板,所以可能友链有漏掉,我已经重新添加了。

September 27, 2007 at 8:02 AM  
Anonymous Vane said...

@chenbo:对于zh.wikipedia.org,我用http://where.willu.be这个在线代理。

September 27, 2007 at 8:15 AM  
Anonymous winsphinX said...

为了保留革命的火种,不要广为留传

September 27, 2007 at 9:50 PM  
Anonymous Siuloong said...

可惜我的用不了啊,因为是公司的邮箱:(

September 30, 2007 at 3:28 AM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home