-
-
Save xream/3548268 to your computer and use it in GitHub Desktop.
My Pac File for Auto Proxy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var PROXY = { | |
"direct":"DIRECT", | |
"goagent":"PROXY 127.0.0.1:8087", | |
"vps":"PROXY 127.0.0.1:8123", | |
"edu":"PROXY 127.0.0.1:4080", | |
"sogou":"PROXY 127.0.0.1:8083", | |
"tele":"PROXY 127.0.0.1:4480" | |
}; | |
var ALL = [ | |
{ | |
// Direct Section | |
"proxy":"direct", | |
"net":[ | |
"127.0.0.1", | |
"192.168.0.0/255.255.0.0", | |
"172.16.0.0/255.255.0.0" | |
], | |
"domain":[ | |
"localhost", | |
".tjmu.edu.cn", | |
".hust.edu.cn", | |
".tongjitv.com", | |
".tjstart.com" | |
] | |
}, | |
{ | |
// Long Connection Section | |
"proxy":"vps", | |
"domain":[ | |
".rapidshare.com", | |
"mobile.twitter.com", | |
"userstream.twitter.com" | |
] | |
}, | |
{ | |
// GFW Section | |
"proxy":"goagent", | |
"domain":[ | |
".simplecd.me", | |
".simplecd.org", | |
".jav4you.com", | |
".pinterest.com", | |
".ihavesun2012.com", | |
".sourceforge.net", | |
".soundofhope.org", | |
".epochtimes.com", | |
".dw.de", | |
".xuite.net", | |
".tinybucks.net", | |
".qqc.co", | |
".jingpin.org", | |
".slideshare.net", | |
".tysurl.com", | |
".zff.co", | |
"r.twimg.com", | |
"tw.myblog.yahoo.com", | |
".mimip2p.net", | |
".touch99.com", | |
"cl.eye.rs", | |
".iphone-dev.org", | |
"www.owind.com", | |
".posterous.com", | |
".licdn.com", | |
".ykhandler.com", | |
"twitter-badges.s3.amazonaws.com", | |
".multiupload.com", | |
".cuophiepgiet.net", | |
".cyanogenmod.com", | |
".careercup.com", | |
".shell909090.com", | |
".igfw.net", | |
".sex.com", | |
".hkreporter.com", | |
".peacehall.com", | |
".elastic.io", | |
".ncchinesenews.com", | |
".henhengan.com", | |
".fb.me", | |
".wretch.cc", | |
".hotfile.com", | |
".ironpython.net", | |
".free.fr", | |
".rudygems.com", | |
".filesonic.com", | |
".openhome.cc", | |
".rubyinstaller.org", | |
".idv.tw", | |
".isohunt.com", | |
".nabble.com", | |
".kanzhongguo.com", | |
".sytes.net", | |
".chinagfw.org", | |
".mediafire.com", | |
".openmymind.net", | |
".spinejs.com", | |
".speakerdeck.com", | |
".thechangelog.com", | |
".imgkeep.com", | |
".dabr.co.uk", | |
".voanews.com", | |
".voachineseblog.com", | |
".voa.mobi", | |
".bbc.in", | |
".bbcchinese.com", | |
".bbc.co.uk", | |
".chinainperspective.com", | |
".mingpao.com", | |
".wuala.com", | |
".boxun.com", | |
".dwnews.com", | |
".dw-world.com", | |
".dw-world.de", | |
".lijit.com", | |
".gravatar.com", | |
".viddler.com", | |
".chzbgr.com", | |
".cheezburger.com", | |
".news.pchome.com.tw", | |
".eddychan.com", | |
".9bis.net", | |
".9bis.com", | |
".libertytimes.com.tw", | |
".cornelcreanga.com", | |
".topsy.com", | |
".xys.org", | |
".golang.org", | |
".youtube.com", | |
".vimeo.com", | |
".blip.tv", | |
".twerpscan.com", | |
".edubridge.com", | |
".uncyclopedia.info", | |
".goodreads.com", | |
".disqus.com", | |
".marguerite.su", | |
".kenengba.com", | |
".lnkd.in", | |
".wmoov.com", | |
".9city.me", | |
".twitlonger.com", | |
".yegle.net", | |
".paper.li", | |
".biantailajiao.com", | |
".nodeknockout.com", | |
".igfw.tk", | |
".mitbbs.com", | |
".aculo.us", | |
".zeptojs.com", | |
".openvpn.net", | |
".4bsd.biz", | |
".tabsugar.com", | |
".bitly.com", | |
".addthiscdn.com", | |
".ggpht.com", | |
".tv.com", | |
".widgets.twimg.com", | |
".android-x86.org", | |
".rfa.org", | |
".cld.me", | |
".mashable.com", | |
".nextmedia.com", | |
".appleactionews.com", | |
".tumblr.com", | |
".mobileways.de", | |
".pixfs.net", | |
".pixnet.net", | |
".blip.tv", | |
".scribd.com", | |
".voanews.com", | |
".android.com", | |
".gstatic.com", | |
".chromium.org", | |
".t66y.com", | |
".letscorp.net", | |
".epfl.ch", | |
".snsanalytics.com", | |
".tweetmeme.com", | |
".smf.is", | |
".twitterfeed.com", | |
".r246.jp", | |
".wordpress.com", | |
".wp.com", | |
"p.twimg.com", | |
".rfi.fr", | |
".wezone.net", | |
".wikipedia.org", | |
".chinadigitaltimes.net", | |
".bit.ly", | |
".googleapis.com", | |
".google.com", | |
".analyticsrock.com", | |
".sns.mx", | |
".solidot.org.feedsportal.com", | |
".pocoo.org", | |
".linkedin.com", | |
".fnierdster.com", | |
".milewise.com", | |
".picplz.com", | |
"t.co", | |
".ytimg.com", | |
"google.com", | |
".googleusercontent.com", | |
".googlepages.com", | |
".googlevideo.com", | |
".googlecode.com", | |
".appspot.com", | |
".blogspot.com", | |
".google-analytics.com", | |
".rene-liu.com", | |
".4shared.com", | |
".twitter.com", | |
".twitpic.com", | |
".img.ly", | |
".j.mp", | |
".yfrog.com", | |
".fbcdn.net", | |
".feedburner.com", | |
".foursquare.com", | |
".bullogger.com", | |
".diigo.com", | |
".dropbox.com", | |
".ht.ly", | |
".hootsuite.com", | |
".imageshack.us", | |
".imdb.com", | |
".mail-archive.com", | |
".mobypicture.com", | |
".ow.ly", | |
".pastie.org", | |
".plixi.com", | |
".plurk.com", | |
".rapidshare.com", | |
".wp.me", | |
".nyti.ms", | |
".googlesyndication.com", | |
".page2rss.com", | |
".dhananjaynene.com", | |
".twbbs.org.tw", | |
".llvm.org", | |
".tweetdeck.com", | |
".thepiratebay.se", | |
".thepiratebay.org", | |
".apigee.com", | |
".cl.ly", | |
".guao.cc", | |
".vimeo.com", | |
".wdfiles.com", | |
".ohloh.net", | |
".googlelabs.com", | |
".creaders.net", | |
".pulse.yahoo.com", | |
".blogger.com", | |
".google.com.hk", | |
"go.redirectingat.com", | |
".faststone.org", | |
".the-big-bang-theory.com", | |
".echofon.com", | |
".goo.gl", | |
".hackerne.ws", | |
".friendfeed.com" | |
], | |
"keyword":[ | |
"facebook", | |
"youtu.be", | |
"://goo.gl/fb/", | |
"python.org/download/" | |
] | |
}, | |
{ | |
"proxy":"edu", | |
"net":[ | |
"202.114.0.0/255.255.0.0" | |
], | |
"domain":[ | |
".embase.com", | |
"dx.doi.org", | |
".thescientificworld.co.uk", | |
".wiley.com", | |
".liebertonline.com", | |
".springerlink.com", | |
".aacrjournals.org", | |
".nature.com", | |
".redjournal.org", | |
".sciencedirect.com", | |
".metapress.com", | |
".sciencemag.org" | |
] | |
} | |
]; | |
function dnsDomainIs(host, pattern) { | |
if (pattern.charCodeAt(0) === 46) { // pattern[0] === "." | |
return (host === pattern.slice(1) || | |
(host.length >= pattern.length && host.substring(host.length - pattern.length) === pattern)); // original dnsDomainIs function | |
} | |
return (host === pattern); | |
} | |
function keywordMatch(url, pattern) { | |
return url.indexOf(pattern) >= 0; | |
} | |
function convertAddr(ipchars) { | |
var bytes = ipchars.split('.'); | |
return ((bytes[0] & 0xff) << 24) | | |
((bytes[1] & 0xff) << 16) | | |
((bytes[2] & 0xff) << 8) | | |
(bytes[3] & 0xff); | |
} | |
function checkIp(ipaddr) { | |
var test = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(ipaddr); | |
return !((test == null) || (test[1] > 255 || test[2] > 255 || test[3] > 255 || test[4] > 255)); | |
} | |
function isInNet(ipaddr, pattern) { | |
if (checkIp(ipaddr)) { | |
var tmp = pattern.split("/"); | |
if (tmp.length <= 2) { | |
pattern = tmp[0]; | |
var maskstr; | |
if (checkIp(tmp[1])) { | |
maskstr = tmp[1]; | |
} | |
else { | |
maskstr = "255.255.255.255"; | |
} | |
if (checkIp(pattern)) { | |
var host = convertAddr(ipaddr); | |
var pat = convertAddr(pattern); | |
var mask = convertAddr(maskstr); | |
return ((host & mask) == (pat & mask)); | |
} | |
} | |
} | |
return false; | |
} | |
function validatorBuilder(func, str) { | |
return function (pattern) { | |
return func(str, pattern); | |
}; | |
} | |
function getDefault() { | |
return PROXY["sogou"]; | |
} | |
function FindProxyForURL(url, host) { | |
var validators = { | |
"net":validatorBuilder(isInNet, host), | |
"domain":validatorBuilder(dnsDomainIs, host), | |
"keyword":validatorBuilder(keywordMatch, url) | |
}; | |
var catLength = ALL.length; | |
var ruleType, rules, rulesLength, i; | |
for (var catId = 0; catId < catLength; catId++) { | |
var cat = ALL[catId]; | |
for (ruleType in cat) { | |
if (ruleType !== "proxy" && cat.hasOwnProperty(ruleType) && validators.hasOwnProperty(ruleType)) { | |
rules = cat[ruleType]; | |
rulesLength = rules.length; | |
for (i = 0; i < rulesLength; i++) { | |
if (!!((validators[ruleType])(rules[i])) && PROXY.hasOwnProperty(cat["proxy"])) { | |
return PROXY[cat["proxy"]]; | |
} | |
} | |
} | |
} | |
} | |
return getDefault(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment