Files
shadowsocks-iOS/ShadowWeb/proxy.pac
2013-06-24 21:49:37 +08:00

348 lines
6.1 KiB
JavaScript

var direct = 'DIRECT';
var httpProxy = "SOCKS 127.0.0.1:1080;SOCKS5 127.0.0.1:1080;DIRECT";
var directList = [
"",
"127.0.0.1",
"localhost",
"img.feitian001.com",
"res.yyets.com",
"tp.m-team.cc",
"bdimg.com",
"sogou.com",
"easylist-downloads.adblockplus.org",
"tile.is.autonavi.com",
"wallstreetcn.com",
"service.sony.com.cn",
"ocsp.geotrust.com",
"bankcomm.com",
"img.funshion.com",
"www.ictruth.net",
"z.cn",
"ku6.cn",
"pic4.qiyipic.com",
"clash.zuuga.com",
"xiaonei.com",
"www.xzhfjq.com",
"css.tv.itc.cn",
"bbs.hamanw.com",
"ra.gg",
"cc.cocimg.com",
"i3.itc.cn",
"ip138.com",
"static.gtimg.com",
"www.panabit.com",
"ecpm.tanx.com",
"t.cn",
"mb.hd.sohu.com.cn",
"client.10010.com",
"i1.w.hjfile.cn",
"qq.com",
"www.ctrip.com",
"bbs.360safe.com",
"tmall.com",
"www.sonystyle.com.cn",
"myarticle.enet.com.cn",
"app.yinxiang.com",
"ddimg.cn",
"alicdn.com",
"my.ctrip.com",
"yihaodian.com",
"www.qiyipic.com",
"163.com",
"www.illuma.cn",
"kaixin001.com",
"apk.veryhd.net",
"cc1.midasplayer.com",
"www.pxm-tuts.com",
"georiot.co",
"yihaodianimg.com",
"www.dfdaily.com",
"www.mikrotik.com.cn",
"renren.com",
"js.tv.itc.cn",
"ucimg.vcimg.com",
"arashi-forever.com",
"hotmail.com",
"icbc.com.cn",
"i2.hjfile.cn",
"www.alltrip.cn",
"ttg.im",
"live.com",
"ufile.qushimeiti.com",
"bbs.5imx.com",
"www.tumblr.com",
"bankofchina.com",
"upaiyun.com",
"images.pchome.net",
"www.jiankongbao.com",
"12306.cn",
"mmcdn.cn",
"cdn31.mukkyu.com",
"a1.itc.cn",
"ctc.qzonestyle.gtimg.cn",
"360buyimg.com",
"cdn.tanx.com",
"github.com",
"youdao.com",
"panabit.hr",
"org.cn",
"www.iostoy.com",
"www.spp54.com",
"swf.yk.ss3w.com",
"sinaapp.com",
"js.kk3g.net",
"bbs.hd-tv.cn",
"abduzeedo.com",
"ros.hr",
"95599.cn",
"cache.soso.com",
"ifanr.cn",
"sinaimg.cn",
"tudou.com",
"rrimg.com",
"v4.vcimg.com",
"pass.17173.com",
"www.assoc-amazon.cn",
"ku6img.com",
"static.wumii.cn",
"www12.53kf.com",
"images.shazam.com",
"www9.enet.com.cn",
"www.atpanel.com",
"dpfile.com",
"201.img.pp.sohu.com.cn",
"paipai.com",
"i-7.vcimg.com",
"images2.dzsofts.net",
"www.ciac.sh.cn",
"img.club.pchome.net",
"instashareapp.com",
"static.bshare.cn",
"hk.ozcosmetics.com",
"evernote.com",
"i0.itc.cn",
"upyun.com",
"kankan.com",
"alimama.com",
"www.zealer.com",
"www.flusherlink.com",
"www.instructables.com",
"51buy.com",
"pic.ctrip.com",
"apple.com",
"widget.wumii.cn",
"service.supercell.net",
"bbsimages.weiphone.com",
"douban.com",
"appshopper.com",
"95559.com.cn",
"macromedia.com",
"icloud.com",
"ocsp.entrust.net",
"bing.com",
"update.evernote.com",
"sohu.com",
"www.zgjzy.org",
"www.zdic.net",
"ku6.com",
"sourceforge.net",
"icson.com",
"nas.hr",
"common.hjfile.cn",
"ocsp.thawte.com",
"www.ip.cn",
"wwwimages.adobe.com",
"file.qianqian.com",
"hexun.com",
"chinahongrun.com",
"img.pchome.net",
"tudouui.com",
"sch.yk.ss3w.com",
"sinajs.cn",
"s94.cnzz.com",
"www.playmemoriescameraapps.com",
"spdb.com.cn",
"asp.cctv.ccgslb.net",
"mobileimg.gewara.com",
"e.apsalar.com",
"w.cnzz.com",
"assets.tumblr.com",
"ax.phobos.apple.com.edgesuite.net",
"zhihu.com",
"mat1.gtimg.com",
"alimama.cn",
"www.news365.com.cn",
"soku.com",
"p4.zhimg.com",
"pic3.qiyipic.com",
"s14.cnzz.com",
"tdimg.com",
"xnimg.cn",
"officeimg.vo.msecnd.net",
"b.bshare.cn",
"etao.com",
"img1.gtimg.com",
"webresource.ctrip.com",
"p.3.cn",
"outlook.com",
"vemedio.com",
"ku6cdn.com",
"youku.com",
"q1.cnzz.com",
"aoodoo.weiphone.com",
"toruk.tanx.com",
"c67.orca.io",
"tw.appstore.com",
"kanimg.com",
"www.96dx.com",
"acookie.tanx.com",
"v.iask.com",
"boc.cn",
"tm.hr",
"fuckgfw.hr",
"ccb.com",
"www.kuaizip.com",
"i1.itc.cn",
"www.sonomawireworks.com",
"bing.com.cn",
"www.ifixit.com",
"jscss.kdslife.com",
"220.img.pp.sohu.com.cn",
"count.cpm.cm.sandai.net",
"www.write.org.cn",
"weibo.com",
"www.verycd.com",
"discuz.gtimg.cn",
"ocsp.godaddy.com",
"biz5.sandai.net",
"microsoft.com",
"ifanr.com",
"paipaiimg.com",
"solidot.org",
"newsletter.runkeeper.com",
"www.news-japan.cn",
"360buy.com",
"pic1.bengou.com",
"c-pic3.weikan.cn",
"www.uyunad.com",
"bling1.midasplayer.com",
"xbeta.info",
"cmbchina.com",
"passport.shipin.cn",
"p3.zhimg.com",
"p.tanx.com",
"xnpic.com",
"amazon.cn",
"1.url.cn",
"t.wallstreetcn.com",
"baidu.com",
"ykimg.com",
"st.3.cn",
"taobaocdn.com",
"net.cn",
"huaban.com",
"api.gewara.com",
"2013.img.pp.sohu.com.cn",
"www.aptchina.com",
"i0.article.fd.pchome.net",
"www.yyets.com",
"alipay.com",
"www.evernote.com",
"v2ex.com",
"dianping.com",
"images.enet.com.cn",
"translate.google.cn",
"i2.itc.cn",
"2014.img.pp.sohu.com.cn",
"sina.com.cn",
"xunlei.com",
"c.cnzz.com",
"dangdang.com",
"resource.weiphone.com",
"www.msftncsi.com",
"taobao.com",
"alipayobjects.com",
"www.interoperabilitybridges.com",
"api.travis-ci.org",
"bdstatic.com",
"ic.internet.sony.tv",
"www.speedtest.net",
"tbcdn.cn",
"qzonestyle.gtimg.cn",
"aicdn.com",
"www.smmail.cn",
"iface.iqiyi.com",
"shaonas.local",
"apple.com.cn",
"www.adobe.com",
"rel.discuz.soso.com",
"s20.cnzz.com",
"www.ticket2010.com",
"abchina.com",
"hdwing.com",
"yupoo.com",
"com.cn",
"ac.atpanel.com"
];
var directAcc = {};
for (var i = 0; i < directList.length; i += 1) {
directAcc[directList[i]] = true;
}
var topLevel = {
"ac": true,
"co": true,
"org": true,
"com": true,
"net": true,
"edu": true
};
// only handles IPv4 address now
function hostIsIP(host) {
var parts = host.split('.');
if (parts.length != 4) {
return false;
}
for (var i = 3; i >= 0; i--) {
if (parts[i].length === 0 || parts[i].length > 3) {
return false;
}
var n = Number(parts[i]);
if (isNaN(n) || n < 0 || n > 255) {
return false;
}
}
return true;
}
function host2Domain(host) {
if (hostIsIP(host)) {
return ""; // IP address has no domain
}
var lastDot = host.lastIndexOf('.');
if (lastDot === -1) {
return ""; // simple host name has no domain
}
// Find the second last dot
dot2ndLast = host.lastIndexOf(".", lastDot-1);
if (dot2ndLast === -1)
return host;
var part = host.substring(dot2ndLast+1, lastDot);
if (topLevel[part]) {
var dot3rdLast = host.lastIndexOf(".", dot2ndLast-1);
if (dot3rdLast === -1) {
return host;
}
return host.substring(dot3rdLast+1);
}
return host.substring(dot2ndLast+1);
}
function FindProxyForURL(url, host) {
return (directAcc[host] || directAcc[host2Domain(host)]) ? direct : httpProxy;
}