将 CIDR 列表文件转换为 PAC 文件的脚本,自带中国 IP 段白名单 PAC - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
plqws

将 CIDR 列表文件转换为 PAC 文件的脚本,自带中国 IP 段白名单 PAC

  •  
  •   plqws
    wspl 2015 年 8 月 4 日 7601 次点击
    这是一个创建于 3917 天前的主题,其中的信息可能已经有所发展或是发生改变。

    嘿嘿,还是一如既往地懒,直接把 Github 上的 README.md 贴上来吧。

    Github地址: https://github.com/wspl/CIDR2PAC

    (欢迎 Star、Fork、做 PAC 镜像)

    CIDR2PAC

    A es6 script for covering CIDRs list to PAC proxy script.

    一个用于将 CIDR 列表文件转换为 PAC 自动代理文件的脚本。

    中国IP段CIDR列表地址:(项目中已自带)

    http://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone

    使用姿势

    // 安装 io.js 与 npm // 根据需求修改 index.js 文件中的 CIDR_PATH / PAC_PATH / PROXY 三个常量 $ git clone https://github.com/wspl/CIDR2PAC.git $ cd ./CIDR2PAC $ npm install $ iojs ./ // 然后就可以在 PAC_PATH 对应目录找到你的 PAC 文件。 

    镜像

    该 PAC 文件将使国内 IP 网站跳过代理,非国内 IP 网站走 127.0.0.1:1080 的代理。

    Github Raw: https://raw.githubusercontent.com/wspl/CIDR2PAC/master/whitelist.pac (可以直接贴到浏览器代理设置的 pac 地址栏中,当然首先得能访问 Github _(:з」∠)_)

    16 条回复    2015-10-24 14:06:32 +08:00
    goodbest
        1
    goodbest  
       2015 年 8 月 4 日
    如果没有靠谱的DNS,碰到DNS污染,这些都是白搭啊...
    LazyZhu
        2
    LazyZhu  
       2015 年 8 月 4 日
    @plqws
    CIDR可以直接从apnic抓
    wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > chnroute.txt

    @goodbest
    chrome/firefox中使用PAC是可以远程DNS解析,不存在dns污染问题.
    plqws
        3
    plqws  
    OP
       2015 年 8 月 4 日
    @goodbest 我本来是用 Proxifier 的,然后 twitter、facebook、youtube 因为 dns 污染根本上不去,在Proxifier 设置让 DNS 解析也走代理还是不行,最后换成浏览器代理后就可以了……好像是 Chrome 的 DNS 预加载只能靠自身的代理。
    plqws
        4
    plqws  
    OP
       2015 年 8 月 4 日
    @LazyZhu 这个方法好!
    goodbest
        5
    goodbest  
       2015 年 8 月 4 日
    @LazyZhu
    所以在非chrome/firefox里就没效果了。

    @plqws
    Flora_Pac Mono_Pac 也都是干这个的,不过目前比你这个干了更多吧。
    plqws
        6
    plqws  
    OP
       2015 年 8 月 4 日
    @goodbest 恩,之前不知道有这两个东西,重复造了轮子。
    LazyZhu
        7
    LazZhu  
       2015 年 8 月 4 日
    @goodbest
    错, 在不支持远程DNS解析的没效果, 譬如楼上的Proxifier也有远程DNS解析功能.
    PAC应用范围也就浏览器/系统代理,WAPD那几个了吧.
    goodbest
        8
    goodbest  
       2015 年 8 月 4 日
    @LazyZhu Mac啊 iOS啊都受污染。
    LazyZhu
        9
    LazyZhu  
       2015 年 8 月 4 日
    @goodbest
    上面说了,不支持远程DNS解析的没效果.
    PAC: "怪我咯~"
    Daniel65536
        10
    Daniel65536  
       2015 年 8 月 5 日
    这就是为什么我写Mono_Pac的时候会加入黑白名单功能……
    一般来说DNS只影响少量著名域名,用黑名单处理这些著名域名就好,而IP段这个其实有两方面作用,一个是线路优化,用自己拥有的可靠的VPS中转就能有效加速国外访问,另一方面是国外IP上的东西有可能被关键词reset,国内IP不会放这些关键词,所以IP段还能防reset。

    把所有的IP段都跑一次isInNet成本太高了,比较好的做法应该是充分利用排序好的信息,跑一次二分查找,找出最接近的IP段然后测试IP是否在IP段里。
    Daniel65536
        11
    Daniel65536  
       2015 年 8 月 5 日
    跑了下测试,用相同的IP数据Mono_Pac生成的pac体积是你的八分之一,性能是你的近千倍……
    所以说所有IP段都跑isInNet是一件开销很大很大的事情。
    digimoon
        12
    digimoon  
       2015 年 8 月 5 日
    透明代理还是最舒服
    不少程序根本就不理pac这东西,还有那些完全不支持pac的系统例如游戏机
    而在pc上面翻的手段和方法太多增删漏缺也更方便
    plqws
        13
    plqws  
    OP
       2015 年 8 月 5 日
    @Daniel65536 嗯,的确昨晚的试用中,有时候打开网页会出现卡在走PAC的阶段,所以性能的确是个大问题。我用 Proxifier 时,相同的 ip 库,相同的做法,相同的排序,性能却比 PAC 不知道高到那里去,而且还能全局代理。做这个的目的只是为了能够访问 twitter、youtube、facebook 这些 DNS 被重点关照的网站,不过最后还是本末倒置了。看来得找一些方法让 Chrome 的 DNS 解析完全走国外代理,其他的交给 Proxifier,感觉这样子才能得到最好的体验。
    regeditms
        14
    regeditms  
       2015 年 10 月 24 日
    @plqws 我觉得 proxiifer 还是配合 chinadns 来用 解决 dns 污染,境内走境内的 ip 。
    plqws
        15
    plqws  
    OP
       2015 年 10 月 24 日
    @regeditms 我现在用 anchorDNS 表示挺不错的。
    regeditms
        16
    regeditms  
       2015 年 10 月 24 日
    @plqws 哦 anchorDNS 应该是和 chinadns 一样的吧。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2683 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 07:08 PVG 15:08 LAX 00:08 JFK 03:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86