/* * 本 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"; }