
/* |
* 本 PAC 地址:http://t.xd.cn/ 欢迎内部传播 |
* 本 PAC 通过 Dropbox 更新。需要编辑权限的,可以告诉你的 Dropbox 帐号,Share 一下就好了 |
* |
* 建议复制一个临时文件来修改,用 jslint 检查语法 |
* Mac 下安装 jslint |
* brew install jslint |
* jslint -process index.pac |
* 没装 brew 的,先装个:/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731) |
* |
* 某些黑名单域名,用我的DNS服务器的话,就会解析到境内IP,解析到这些IP时,不需要翻墙 |
* DNS 服务器:180.153.139.245 180.153.139.246 上海电信服务器,网通用户请勿使用,否则境内很多大网站的 CDN 会把你分配到上海电信附近的服务器 |
* |
* BTW,如果需要根据IP来翻墙,可以用 http://t.xd.cn/ip 但是IP列表非常多,客户端解析会很耗CPU |
* |
* by xdanger@gmail.com, 最近更新:2012.03.03 1:30 |
*/ |
function FindProxyForURL(url, host) { |
var _socks_us = "SOCKS 115.182.64.62:8881"; |
var _socks_hk = "SOCKS 115.182.64.62:8883"; |
var _socks_tw = "SOCKS t.xd.cn:8888"; |
var _http_prx = "PROXY t.xd.cn:8890"; |
var _wl_dom = [ ".verycd.com", ".baidu.com", ".qq.com" ]; |
var _wl_url = []; |
var _wl_add = [ ['203.208.0.0', '255.255.0.0'] ]; |
// 麻烦添加网站前先搜索一下,所有 .jp/.tw/.hk/.cc 域名已经都进去了 |
var _bl_dom = [ |
".10gbfreehost.com", |
".1bao.org", |
".500px.com", |
".500px.net", |
".aboluowang.com", |
".addthis", |
".aircrack-ng.org", |
".amazon.com", |
".amazonaws.com", |
".amazonwebservices.com", |
".appspot.com", |
".asahichinese.com", |
".avhappy.com", |
".bang-olufsen.com", |
".bao.li", |
".battle.net", |
".bbc.co.uk", |
".bit.ly", |
".blogger.com", |
".blogsmithmedia.com", |
".blogspot.com", |
".bullogger.com", |
".caucho.com", |
".cc", |
".chinagfw.org", |
".cl.ly", |
".cmule.com", |
".cmule.info", |
".cmule3.info", |
".cmule5.info", |
".cnn.com", |
".curse.com", |
".daahoo.com", |
".dajiyuan.com", |
".davebalmain.com", |
".delicious.com", |
".demonoid", |
".developer.android.com", |
".dropbox.com", |
".dropboxatwork.com", |
".echofon.com", |
".engadget.com", |
".epochtimes.com", |
".evernote.com", |
".facebook.com", |
".facebook.net", |
".fbcdn.net", |
".fc2.com", |
".feedburner.com", |
".feedly.com", |
".ff.im", |
".flickr.com", |
".foursquare", |
".freakshare.com", |
".freemorenews.com", |
".fsck.com", |
".funp.com", |
".ggpht.com", |
".git-scm.com", |
".gitcasts.com", |
".golang.org", |
// Google 解析到的是境内IP,不需要代理 |
// 而且国外服务器无法访问Google境内的IP,所以用了代理反而会连不上! |
// 如果有个别域名确实需要代理,请加具体域名 |
//".google.com", |
".googleusercontent.com", |
".googlevideo.com", |
".googlevideo.com.cn", |
".grandfg.com", |
".greasespot.net", |
".gstatic.com", |
".hdbits.org", |
".hecaitou.net", |
".hellotxt", |
".hellowtext.com", |
".hemidemi.com", |
".hermanmiller.com", |
".hk", |
".html5quintus.com", |
".hulu.com", |
".ikan.pptv.com", |
".imageporter.com", |
".imageshack.us", |
".imdb.com", |
".imdb.com", |
".img.ly", |
".instagr.am", |
".instwall", |
".internic.com", |
".itunes.apple.com", |
".iyin.net", |
".j.mp", |
".jp", |
".kenengba.com", |
".lighthouseapp.com", |
".live.com", |
".livejournal.com", |
".loveyahu.nu", |
".mail-archive.com", |
".mediafire.com", |
".mindmeister.com", |
".mitbbs.com", |
".mobile01.com", |
".5i01.com", |
".myblog.yahoo.com", |
".myminicity.com", |
".namecheap.com", |
".nanorails.com", |
".netshelter.net", |
".opera.com", |
".pandora.com", |
".path.com", |
".peacehall.com", |
".pixnet.net", |
".photoload.ru", |
".pinyuan001.com", |
".playup.com", |
".plurk.com", |
".progit.org", |
".queenlook.com", |
".rfa.org", |
".rubygems.org", |
".safaribooksonline.com", |
".secretchina.com", |
".sgp.cm", |
".sourceforge.net", |
".staticflickr.com", |
".supersized.org", |
".t.co", |
".technorati.com", |
".thepiratebay.org", |
".torproject.org", |
".tumblr.com", |
".tw", |
".tw.yahoo.com", |
".twitpic", |
".twitter.com", |
".tweetdeck.com", |
".twitterfeed.com", |
".typepad.com", |
".ultraxs.com", |
".uncyclopedia", |
".ustream.tv", |
".uwants.com", |
".v2ex.com", |
".vimeo.com", |
".vimeocdn.com", |
".voanews.com", |
".vox.com", |
".w3schools.com", |
".wenxuecity.com", |
".wikileaks.org", |
".wikimedia.org", |
".wikinews.org", |
".wikipedia.org", |
".wunderlist.com", |
".wordpress.com", |
".wp.com", |
".wuala.com", |
".xuite.net", |
".xys.org", |
".xysblogs.org", |
".yfrog.com", |
".yimg.com", |
".yindows.com", |
".youtube.com", |
".zaobao.com", |
".zaozon.com", |
".ziphone.org", |
".zuo.la", |
".zuola.com", |
"asahichinese.com", |
"bit.ly", |
"delicious.com", |
"fbcdn-photos-a.akamaihd.net", |
"fbcdn-profile-a.akamaihd.net", |
"git-scm.com", |
"html5quintus.com", |
"instagr.am", |
"path.com", |
"plus.google.com", |
"progit.org", |
"sgp.com", |
"twitter.com", |
"t.co", |
"vimeo.com", |
"wunderlist.com", |
"wordpress.com" |
]; |
// 尽量加域名,匹配速度会快,节约CPU。不行的再加URL模糊匹配 |
var _bl_url = [ "*/search?q=cache:*" ]; |
var _bl_add = [ ["180.168.41.0", "255.255.255.0"], ["66.6.36.36", "255.255.255.254"], ["74.125.31.103", "255.255.0.0"] ]; |
var i = 0; |
// 判断境内IP |
var ip = dnsResolve(host); |
for (i = 0; i < _wl_add.length; i++) { |
if (isInNet(ip, _wl_add[i][0], _wl_add[i][1])) { return "DIRECT"; } |
} |
// 白名单域名 |
for (i = 0; i < _wl_dom.length; i++) { |
if (dnsDomainIs(host, _wl_dom[i])) { return "DIRECT"; } |
} |
// 白名单URL |
for (i = 0; i < _wl_url.length; i++) { |
if (shExpMatch(url, _wl_url[i])) { return "DIRECT"; } |
} |
// Dropbox 需要用 http 代理才能即时获取更新 |
/* HTTP 代理好像不好用 |
var _http_dom = [ '.dropbox.com' ]; |
for (i = 0; i < _http_dom.length; i++) { |
if (dnsDomainIs(host, _http_dom[i])) { return _http_prx; } |
} |
*/ |
// 使用美国代理 |
var _us_dom = [ '.pandora.com' ]; |
for (i = 0; i < _us_dom.length; i++) { |
if (dnsDomainIs(host, _us_dom[i])) { return _socks_us; } |
} |
// 黑名单域名 |
for (i = 0; i < _bl_dom.length; i++) { |
if (dnsDomainIs(host, _bl_dom[i])) { return _http_prx; } |
} |
// 黑名单URL |
for (i = 0; i < _bl_url.length; i++) { |
if (shExpMatch(url, _bl_url[i])) { return _http_prx; } |
} |
for (i = 0; i < _bl_add.length; i++) { |
if (isInNet(ip, _bl_add[i][0], _bl_add[i][1])) { return _http_prx; } |
} |
// 默认 |
return "DIRECT"; |
} |



