我是老刘 发表于 2016/8/18 09:41

pac 翻q+屏蔽广告如何分流

请问,pac如何使用两个代理
比如youtube 走代理1

国内广告走代理2 也就是127.0.0.1:80 之类的。屏蔽广告用

http://img.tiyan.me/ad.js

请问小樱 应该如何去写

krv 发表于 2016/8/18 16:55

分享一个自用的框架

// 设置
// config (1: 启用 | 0: 停用)
var config = {
      hosts: 1,
      blackList: 1,
      digitalDomain: 0 // 屏蔽数字域名
};


// 代理主机
var hostsList = [
      {domain:'localhost', ip:'127.0.0.1:80'},
      {domain:'localhost.dev'}
];

// 黑名单
var blackList = [
      {url:'http://12.123.123.12/'},
      {url:'http://bbs.xxxx.com/ad/'},
      {url:'http://www.xxxx.com/guanggao/'},
      {domain:'xxx.cn'},
      {domain:'xxx.net'},
      {domain:'g.163.com'},
];

// 白名单
var whiteList = [
      'xxx.cn',
      '163.com',
      '12306.cn',
];


function FindProxyForURL(url, host){
      var direct = 'DIRECT;';

      var proxy = '127.0.0.1:80';
      var block = '0.0.0.0:80';
      
      if(shExpMatch(host, '10.+.+.+')) return direct;
      if(shExpMatch(host, '172.+.+.+')) return direct;
      if(shExpMatch(host, '192.168.+.+')) return direct;
      if(shExpMatch(host, '127.0.0.1')) return direct;
      if(shExpMatch(host, 'localhost')) return direct;
      if(shExpMatch(host, 'dl.google.com')) return direct;

      if(config.blackList){
                for(i in blackList){
                        if(blackList.url){
                              if(url.indexOf(blackList.url) > -1){
                                        return 'PROXY '+ block +';';
                              };
                        };
                        if(blackList.domain){
                              if(shExpMatch(host, blackList.domain)){
                                        return 'PROXY '+ block +';';
                              };
                        };
                };
      };

      if(config.digitalDomain){
                // 屏蔽数字域名和绕过白名单
                var reg = /^([^.]+\.)*(\d+)(\.[^.]+)$/gi;
                if(reg.exec(host) && whiteList.indexOf(RegExp.$2 + RegExp.$3) < 0){
                        return 'PROXY '+ block +';';
                };
      };

      if(config.hosts){
                // 代理的主机列表
                for(i in hostsList){
                        if(dnsDomainIs(host, hostsList.domain)){
                              return 'PROXY '+ (hostsList.ip ? hostsList.ip : proxy) +';';
                        };
                };
      };

      return direct;
}

小樱 发表于 2016/8/18 18:53

楼上说了,也可以参考微软官网
https://technet.microsoft.com/zh-cn/library/cc985335.aspx

十三太保 发表于 2016/9/20 15:41

krv 发表于 2016/8/18 16:55
分享一个自用的框架

设置后 只能上国内 不能出国 即使hostslist里加了规则也不行 求解
页: [1]
查看完整版本: pac 翻q+屏蔽广告如何分流