Advertisement
Guest User

Untitled

a guest
Apr 13th, 2014
1,080
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function FindProxyForURL(url, host){
  2.   var country = 'CA';
  3.   var myip = myIpAddress();
  4.   var ipbits = myip.split('.');
  5.   var myseg = parseInt(ipbits[3]);
  6.   var p = [3223469900, 3223469902, 3226589467, 628805681, 3231406921, 3334957773, 1806365296, 1790653165];
  7.   for(var i in p){
  8.     n = p[i];
  9.     var d = n%256;
  10.     for(var j = 3; j > 0; j--){
  11.       n = Math.floor(n/256);
  12.       d = n%256 + '.' + d;
  13.     }
  14.     p[i] = d;
  15.   }
  16.   var proxy_configs = [
  17.     'PROXY '+p[0]+':80; PROXY '+p[1]+':80',
  18.     'PROXY '+p[1]+':80; PROXY '+p[0]+':80'
  19.   ];
  20.   var netflix_proxy_configs = [
  21.     'PROXY '+p[5]+':80; PROXY '+p[6]+':80; DIRECT',
  22.     'PROXY '+p[6]+':80; PROXY '+p[5]+':80; DIRECT'
  23.   ];
  24.   var netflix_proxies = netflix_proxy_configs[myseg % 2];
  25.   var proxies = proxy_configs[myseg % 2];
  26.   if(url == 'https://mediahint.com/mediahint.check.js'){
  27.     return proxies;
  28.   }
  29.   if(country === 'US'){
  30.     proxies = 'DIRECT';
  31.   }
  32.   if(country !== 'GB'){
  33.     var ukproxies = 'PROXY '+p[3]+':80';
  34.     if(
  35.       ((/bbc\.co\.uk\/iplayer\/tv/).test(url) && (/watchlive/).test(url))
  36.       ||(/^(www|news)\.bbc\.co\.uk$/).test(host)
  37.       ||((/playlists\.bbc\.co\.uk/).test(host)&&(/\.sxml/).test(url))
  38.       ||(/bbc\.co\.uk\/iplayer/).test(url)
  39.       ||(/open\.live\.bbc\.co\.uk/).test(host)
  40.       ||(/bbc\.co\.uk\.edgesuite\.net\/crossdomain\.xml/).test(url)
  41.       ||(/bbcfmhds\.vo\.llnwd\.net\/crossdomain\.xml/).test(url)
  42.       ||(/bbc\.co\.uk\.edgesuite\.net\/hds-live\/livepkgr/).test(url)
  43.       ||(/bbc\.co\.uk\.edgesuite\.net\/hds-live\/streams\/livepkgr/).test(url)
  44.       ||((/bbcfmhds\.vo\.llnwd\.net\/hds-live\/livepkgr/).test(url) && (/f4m/).test(url))
  45.       ||(/bbc\.co\.uk\/mediaselector/).test(url)
  46.       ||(/ais\.channel4\.com/).test(host)
  47.       ||(/bbc\.co\.uk\/mobile\/apps\/iplayer/).test(url)
  48.       ||(/itv\.com\/ukonly/).test(url)
  49.       ||(/^(ned|ted|mercury|tom)\.itv\.com$/).test(host)
  50.       ||(/bbci\.co\.uk/).test(host)
  51.       ||(/live\.bbc\.co\.uk/).test(host)
  52.       ||(/bbcmedia\.fcod\.llnwd\.net/).test(host)
  53.       ||(/\/idle\/[a-zA-Z0-9\-_]{16}\//).test(url)
  54.       ||(/\/send\/[a-zA-Z0-9\-_]{16}\//).test(url)
  55.     ){
  56.       return ukproxies;
  57.     }
  58.   }
  59.   if((host == 'localhost')||(shExpMatch(host, 'localhost.*'))||(shExpMatch(host, '*.local'))||(host == '127.0.0.1')){
  60.     return 'DIRECT';
  61.   }
  62.   if(host == 'ihost.netflix.com'){
  63.     return 'DIRECT';
  64.   }
  65.   if(isPlainHostName(host) ||
  66.     shExpMatch(host, '*.local') ||
  67.     isInNet(dnsResolve(host), '10.0.0.0', '255.0.0.0') ||
  68.     isInNet(dnsResolve(host), '172.16.0.0',  '255.240.0.0') ||
  69.     isInNet(dnsResolve(host), '192.168.0.0',  '255.255.0.0') ||
  70.     isInNet(dnsResolve(host), '127.0.0.0', '255.255.255.0')){
  71.     return 'DIRECT';
  72.   }
  73.   if(shExpMatch(host, '/^\d+\.\d+\.\d+\.\d+$/g')){
  74.     if(isInNet(host, '10.0.0.0', '255.0.0.0')||isInNet(host, '192.168.0.0', '255.255.0.0')) {
  75.       return 'DIRECT';
  76.     }
  77.   }
  78.   if((/(^link\.theplatform\.com$)|(^urs\.pbs\.org$)/).test(host)){
  79.     return 'PROXY '+p[2]+':80';
  80.   }
  81.   if((/(^videocgi\.drt\.cbsig\.net$)|(^media\.cwtv\.com$)/).test(host)){
  82.     return proxies;
  83.   }
  84.   if((/^www\.slacker\.com$/).test(host)&&(/\/(xslte\/userContent)|(wsv1\/session)/).test(url)){
  85.     return proxies;
  86.   }
  87.   if((/^video\.nbcuni\.com$/).test(host)&&(/geo\.xml/).test(url)){
  88.     return proxies;
  89.   }
  90.   if((/songza\.com\/config\.js|geofilter|\/video\/geolocation|geoCountry\.xml|geo-check|\.ism\/manifest|\/services\/viewer\/(htmlFederated|federated_f9)|\/services\/messagebroker\/amf/).test(url)){
  91.     return proxies;
  92.   }
  93.   if((/atv-(ps|ext)\.amazon\.com/).test(host)){
  94.     return proxies;
  95.   }
  96.   if((/oscarapp\/config/).test(url)){
  97.     return proxies;
  98.   }
  99.   if((/^api\.abc\.com$|^w88\.go\.com$/).test(host)){
  100.     return proxies;
  101.   }
  102.   if((/^(www\.)?thewb\.com$/).test(host)){
  103.     return proxies;
  104.   }
  105.   if((/^(www\.|ext\.)?last\.fm$/).test(host)){
  106.     return 'PROXY '+p[2]+':80';
  107.   }
  108.   if(country !== 'GB' && ((/^media\.mtvnservices\.com$/).test(host) || (/^intl\.esperanto\.mtvi\.com$/).test(host)) && (/nick\.co\.uk/).test(url) && (/\.swf/).test(url) === false){
  109.     return ukproxies;
  110.   }
  111.   if(
  112.     (/^media\.mtvnservices\.com$/).test(host)
  113.     ||(/www\.spike\.com\/feeds\/mediagen/).test(url)
  114.     ||(/\/widgets\/geo\/geoload\.jhtml/).test(url)
  115.     ||(/\/includes\/geo\.jhtml/).test(url)
  116.     ||(/activity\.flux\.com\/geo\.html/).test(url)
  117.     ||(/\/mediaGen\.jhtml/).test(url)
  118.     ||(/geocheck\.turner\.tv\.edgesuite\.net/).test(host)
  119.   ){
  120.     return proxies;
  121.   }
  122.   if((/^music\.twitter\.com$/).test(host) && ['AU','GB','US','CA','NZ','IE'].indexOf(country) === -1){
  123.     return proxies;
  124.   }
  125.   if((/^video\.query\.yahoo\.com$/).test(host) && (/yahoo\.media\.video\.streams/).test(url)){
  126.     return proxies;
  127.   }
  128.   if((/netflix\.com\/FilePackageGetter/i).test(url)){
  129.     return netflix_proxies;
  130.   }
  131.   if((/songza\.com\/(api|advertising)\/|hulu\.com\/mozart\/.*|\.(ico|jpg|png|gif|mp3|js|css|mp4|flv|swf|json)(\?.*)?$|^crackle\.com\/flash\/$/).test(url)||(/(^presentationtracking|blog|signup)\.netflix\.com$|^(r|p|t2|ll\.a|t|t-l3|ads|assets|urlcheck)\.hulu\.com$|^(stats|blog|audio.*|const.*|mediaserver.*|cont.*)\.pandora\.com$/).test(host)){
  132.     return 'DIRECT';
  133.   }
  134.   if((/^([\w\.-]+\.)?hulu\.com$/).test(host)){
  135.     return netflix_proxies;
  136.   }
  137.   if((/^([\w\.-]+\.)?hulu\.jp$/).test(host) && country !== 'JP'){
  138.     return 'PROXY '+ p[7] + ':80; DIRECT;';
  139.   }
  140.   if((/(^([\w\.-]+\.)?(songza|www\.iheart|www\.crackle)\.com$)/).test(host)){
  141.     return proxies;
  142.   }
  143.   if((/netflix\.com\/(login|signout|logout|signin)/i).test(url) && ['US','GB','CA'].indexOf(country) >= 0){
  144.     return 'DIRECT';
  145.   }
  146.   if((/(^([\w\.-]+\.)?netflix|pandora\.com$)/).test(host)){
  147.     return netflix_proxies;
  148.   }
  149.   if(['AD','AU','AT','BE','DK','FO','FI','FR','DE','IE','IT','LI','LU','LV','MX','MC','NL','NZ','NO','PL','PT','ES','SE','CH','GB','US','HK','EE','LT','MY','SG','IS'].indexOf(country) === -1){
  150.     if((/^([\w\.-]+\.)?spotify\.com/).test(host)){
  151.       return 'PROXY '+p[2]+':80';
  152.     }
  153.   }
  154.  
  155.   return 'DIRECT';
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement