Skip to content

Instantly share code, notes, and snippets.

@hipi
Last active August 26, 2019 08:38
Show Gist options
  • Save hipi/a398c480cbfb4f9e7efa83f1a957e432 to your computer and use it in GitHub Desktop.
Save hipi/a398c480cbfb4f9e7efa83f1a957e432 to your computer and use it in GitHub Desktop.
PAC
var proxy = "__PROXY__";
var direct = "DIRECT";
var domains = [
// others
"jsfiddle.net",
"gitter.im",
"greatfire.org",
"tox.im",
"proxifier.com",
"dnscrypt.org",
"atgfw.org",
"chinagfw.org",
"whatismyip.com",
"goagentplus.com",
"shadowsocks.org",
"falcop.com",
"getlantern.org",
"furbo.org",
"goagentx.com",
"sourceforge.net",
"torproject.org",
"hideme.io",
"mozilla.org",
"shadowx.work",
"v2ray.com",
"astrill.com",
//Duckduckgo
"duckduckgo.com",
"duck.com",
//Github
"amazonaws.com",
"raw.githubusercontent.com",
"githubusercontent.com",
"github.io",
"github.com",
//Design
"deviantart.com",
"disqus.com",
"disquscdn.com",
"tumblr.com",
"flickr.com",
"imgur.com",
"evozi.com",
"live.com",
"1drv.com",
"evernote.com",
// blog
"wp.com",
"yam.com",
"wordpress.com",
"blogger.com",
"hexo.io",
"medium.com",
//GeneralNews
"rfi.my",
"rfi.fr",
"washingtonpost.com",
"tmagazine.com",
"nytimes.com",
"nytimg.com",
"imrworldwide.com",
"rankingsandreviews.com",
"usnews.com",
"bbc.co.uk",
"bbci.co.uk",
"bbc.com",
"on-match.com",
"solidot.org",
//TechNews
"engadget.com",
//Network
"amazonaws.com",
"fastly.net",
"akamaihd.net",
"blogsmithmedia.com",
"bit.ly",
"d.pr",
"ow.ly",
"ift.tt",
"nateparrott.com",
"stacksocial.com",
"feedly.com",
"acgtea.com",
//academy and develop
"ieee.org",
"mathoverflow.net",
"tex.stackexchange.com",
"academia.edu",
"geogebra.org",
"golang.org",
"netspeak.org",
"endreslab.com",
//Universities
"illinois.edu",
"berkeley.edu",
"wisc.edu",
"cmu.edu",
"rochester.edu",
"purdue.edu",
"technolutions.net",
"netflix.com",
//Online Dictionary
"ldoceonline.com",
"freedicts.com",
//Softwares
"formacx.com",
"trionworlds.com",
"line.me",
//otaku
"e-hentai.org",
"nhentai.net",
"nicovideo.jp",
"nimg.jp",
"pixnet.net",
"fc2.com",
"nyaatorrents.org",
"nyaa.se",
"share.dmhy.org",
"loli.us",
//facebook
"facebook.net",
"instagram.com",
"facebook.com",
"fb.me",
"cdninstagram.com",
"fbcdn.net",
"booth.pm",
"wikipedia.org",
"pixiv.net",
"twitch.tv",
// Telegram
"t.me",
"telegram.org",
"telegram.me",
//Twitter
"twitter.com",
"t.co",
"twimg.com",
//Google
"appspot.com",
"gvt1.com",
"gmail.com",
"googlemail.com",
"mailchimp.com",
"mail-archive.com",
"google.com",
"goo.gl",
"google.com.hk",
"google.com.tw",
"google.co.jp",
"googlecode.com",
"googleapis.com",
"ggpht.com",
"youtube.com",
"youtu.be",
"ytimg.com",
"youtube-nocookie.com",
"googlevideo.com",
"sketchup.com",
"gstatic.com",
"google-analytics.com",
"googleusercontent.com",
"chrome.com",
"g.co",
"googledrive.com",
"googletagmanager.com",
"googleadservices.com",
"abc.xyz",
//Dropbox
"dropbox.com",
"dropboxusercontent.com",
"dropboxwiki.com",
//iTuens
"mzstatic.com",
"itunes.apple.com",
//cdn
"cloudfront.net",
"colwiz.com"
];
function dnsDomainIs(host, domain) {
var idx = host.length - domain.length;
return (
host == domain || (idx > 0 && host.lastIndexOf("." + domain) == idx - 1)
);
}
function FindProxyForURL(url, host) {
for (var i = 0; i < domains.length; i++) {
if (dnsDomainIs(host, domains[i])) {
return proxy;
}
}
return direct;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment