<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>杰趣网 &#187; PAC</title>
	<atom:link href="http://www.jackq.com/tag/pac/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jackq.com</link>
	<description>IT info. Experience Sharing.</description>
	<lastBuildDate>Tue, 31 Jan 2012 09:48:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>编辑PAC脚本文件自动设置代理Proxy访问WEB</title>
		<link>http://www.jackq.com/edit-pac-file-auto-set-proxy-browse-web/</link>
		<comments>http://www.jackq.com/edit-pac-file-auto-set-proxy-browse-web/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 07:04:28 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[技术应用]]></category>
		<category><![CDATA[PAC]]></category>
		<category><![CDATA[Proxy]]></category>

		<guid isPermaLink="false">http://www.jackq.com/?p=126</guid>
		<description><![CDATA[面对无所不在的GFW，翻墙似乎成了每个追求自由的人的必修课，但是大家都知道频繁使用代理来回切换是很费事的一件事（其实我自己是安装虚拟机VMWARE来翻墙的，好处有很多很多&#8230;），以前并没有注意到有这么一个好的方法可以使用PAC文件自动切换代理。PAC 是 proxy auto-config 的缩写,  它其实是一段  JavaScript脚本文件, 实现了一个叫做 FindProxyForURL (url, host)的函数, (url, host)是FindProxyForURL的两个参数，使用PAC文件也很简单，Pac 文件基本上主流的浏览器都支持它（IE最主流 &#8211; -），它的基本语法是这样 function FindProxyForURL(url, host) { if ( localHostOrDomainIs(host, &#8220;super-secret.website.com&#8221;) ) { return &#8220;PROXY my.proxy.server.com:8080&#8243;; } else { return &#8220;DIRECT&#8221;; } } // 域名为super-secret.website.com的主机通过 PROXY my.proxy.server.com:8080 （通过主机my.proxy.server.com的8080端口来代理访问）代理来访问，其他域名不使用代理。 再来看更复杂的一些用法，一些网站我希望通过HTTP代理的方式来访问，另外一些网站我希望通过SOCKS 代理方式来访问，对于没有呗和谐的网站我希望不通过任何代理而之际访问。 function FindProxyForURL(url, host) { // // 在这您可以编辑一个需要通过PROXY server访问的网站的列表。标注序号的网站地方。 // var proxy_1 = array( [...]]]></description>
			<content:encoded><![CDATA[<p>面对无所不在的GFW，翻墙似乎成了每个追求自由的人的必修课，但是大家都知道频繁使用代理来回切换是很费事的一件事（其实我自己是安装虚拟机VMWARE来翻墙的，好处有很多很多&#8230;），以前并没有注意到有这么一个好的方法可以使用PAC文件自动切换代理。PAC 是 <a href="http://en.wikipedia.org/wiki/Proxy_auto-config" target="_blank">proxy auto-config</a> 的缩写,  它其实是一段  JavaScript脚本文件, 实现了一个叫做 FindProxyForURL (url, host)的函数, (url, host)是FindProxyForURL的两个参数，使用PAC文件也很简单，Pac 文件基本上主流的浏览器都支持它（IE最主流 &#8211; -），它的基本语法是这样</p>
<blockquote><p>function FindProxyForURL(url, host) {<br />
if (<br />
localHostOrDomainIs(host, &#8220;super-secret.website.com&#8221;)<br />
) {<br />
return &#8220;PROXY my.proxy.server.com:8080&#8243;;<br />
} else {<br />
return &#8220;DIRECT&#8221;;<br />
}<br />
}</p>
<p>// 域名为super-secret.website.com的主机通过 PROXY my.proxy.server.com:8080 （通过主机my.proxy.server.com的8080端口来代理访问）代理来访问，其他域名不使用代理。</p></blockquote>
<p>再来看更复杂的一些用法，一些网站我希望通过HTTP代理的方式来访问，另外一些网站我希望通过SOCKS 代理方式来访问，对于没有呗和谐的网站我希望不通过任何代理而之际访问。</p>
<blockquote><p>function FindProxyForURL(url, host) {<br />
//<br />
//  在这您可以编辑一个需要通过PROXY server访问的网站的列表。标注序号的网站地方。<br />
//<br />
var proxy_1 = array(<br />
&#8220;1.super-secret.website.com&#8221;,<br />
&#8220;2.mostly-secret.website.com&#8221;,<br />
&#8220;3.my-secret.other-website.com&#8221;,<br />
&#8220;4.our-secret.other-website.com&#8221;<br />
);</p>
<p>for (var i = 0, var count = proxy_1.length; i &lt; length; i++) {<br />
if (<br />
localHostOrDomainIs(host, proxy_1[i])<br />
) {<br />
return &#8220;PROXY my.proxy.server.com:8080&#8243;;<br />
}<br />
}</p>
<p>//<br />
//  这里您可以编辑一个需要通过SOCKS server访问的网站的列表。<br />
//  标注序号的网站地方。<br />
var proxy_2 = array(<br />
&#8220;1.i-need-socks.website.com&#8221;,<br />
&#8220;2.socks-are-warm-and-fuzzy.other-website.com&#8221;<br />
);</p>
<p>for (var i = 0, var count = proxy_2.length; i &lt; length; i++) {<br />
if (<br />
localHostOrDomainIs(host, proxy_1[i])<br />
) {<br />
return &#8220;SOCKS my.socks.server.com:1080&#8243;;<br />
}<br />
}</p>
<p>//<br />
// 通过SOCKS server （my.socks.server.com:1080）代理方式访问<br />
//  strange.server.com  （将 my.socks.server.com:1080 替换成您自己可用的 SOCKS 代理服务器）<br />
//<br />
if (<br />
shExpMatch(url, &#8220;strange.server.com/socks/*&#8221;)<br />
) {<br />
return &#8220;SOCKS my.socks.server.com:1080&#8243;;<br />
//<br />
//  通过 PROXY server（PROXY other.proxy.server.com:8080） 访问<br />
//   strange.server.com  （将 other.proxy.server.com:8080 替换成您自己的HTTP代理地址）<br />
//   shExpMatch 函数中您还可以使用通配符 “ * ” 进行拼配，如下。<br />
} elseif (<br />
shExpMatch(url, &#8220;strange.server.com/proxy/*&#8221;)<br />
) {<br />
return &#8220;PROXY other.proxy.server.com:8080&#8243;;<br />
}<br />
//<br />
// 直接访问<br />
//<br />
return &#8220;DIRECT&#8221;;<br />
}</p></blockquote>
<p>这里给出一个配置好的PAC 文件，您可以简单修改其中的代理 127.0.0.1:7777 地址即可，注意如果是HTTP代理，要同时修改为PROXY  方式。</p>
<blockquote><p>function FindProxyForURL(url, host) {<br />
if (shExpMatch(url, &#8220;*.wikipedia.org/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.apple.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.tumblr.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.soup.io/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.pandora.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.last.fm/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.adobe.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.photoshop.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.google.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.googlecode.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.blogspot.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.appspot.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.acer.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.demonoid.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.alexa.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.wikimedia.org/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.flickr.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.yahoo.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.zend.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.aptana.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.uncyclopedia.tw/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;uncyclopedia.tw/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.uncyc.org/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.youtube.com/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }<br />
if (shExpMatch(url, &#8220;*.webarchive.org/*&#8221;)) { return &#8220;SOCKS 127.0.0.1:1860&#8243;; }</p>
<p>//可如法炮制增加需要代理的网站地址<br />
return &#8220;DIRECT&#8221;;<br />
}</p></blockquote>
<p>您最后需要做的就是粘贴这段代码，新建记事本文件，粘贴并简单编辑网址同时替换上自己的代理地址保存为后缀为 .pac文件。IE下使用PAC文件操作步骤是，点击IE INERNET选项-连接-局域网设置-使用自动设置脚本 打上对勾并添上PAC文件路径既可。</p>
<p>原文地址：http://mikewest.org/2007/01/auto-configuring-proxy-settings-with-a-pac-file</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jackq.com/edit-pac-file-auto-set-proxy-browse-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

