ソースを参照

Update Domestic Domains

SukkaW 2 年 前
コミット
f89bdf2b2a
3 ファイル変更91 行追加5 行削除
  1. 59 0
      Build/validate-domestic.ts
  2. 29 4
      Source/non_ip/domestic.conf
  3. 3 1
      Source/non_ip/domestic.js

+ 59 - 0
Build/validate-domestic.ts

@@ -0,0 +1,59 @@
+import { fetchRemoteTextAndReadByLine, readFileByLine } from './lib/fetch-text-by-line';
+import { Readable } from 'stream';
+import { parse } from 'csv-parse';
+import { createTrie } from './lib/trie';
+import path from 'path';
+import { processLine } from './lib/process-line';
+
+export const parseDomesticList = async () => {
+  const set = new Set<string>();
+  for await (const line of await fetchRemoteTextAndReadByLine('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf')) {
+    if (line.startsWith('server=/') && line.endsWith('/114.114.114.114')) {
+      const domain = line.slice(8, -16);
+      set.add(domain);
+    }
+  }
+
+  const trie = createTrie(set);
+
+  const top5000 = new Set<string>();
+
+  const res = await fetch('https://radar.cloudflare.com/charts/LargerTopDomainsTable/attachment?id=845&top=5000');
+  const stream = Readable.fromWeb(res.body!).pipe(parse());
+  for await (const [domain] of stream) {
+    if (trie.has(domain)) {
+      top5000.add(domain);
+    }
+  }
+
+  const notIncludedDomestic = new Set<string>(top5000);
+
+  const runAgainstRuleset = async (ruleset: string) => {
+    for await (const l of readFileByLine(ruleset)) {
+      const line = processLine(l);
+      if (!line) continue;
+      const [type, domain] = line.split(',');
+      if (type === 'DOMAIN-SUFFIX') {
+        if (top5000.has(domain)) {
+          notIncludedDomestic.delete(domain);
+        }
+      } else if (type === 'DOMAIN-KEYWORD') {
+        for (const d of top5000) {
+          if (d.includes(domain)) {
+            notIncludedDomestic.delete(d);
+          }
+        }
+      }
+    }
+  };
+
+  await Promise.all([
+    runAgainstRuleset(path.resolve(import.meta.dir, '../List/non_ip/domestic.conf'))
+  ]);
+
+  console.log(notIncludedDomestic.size, notIncludedDomestic);
+};
+
+if (import.meta.main) {
+  parseDomesticList();
+}

+ 29 - 4
Source/non_ip/domestic.conf

@@ -13,6 +13,7 @@ USER-AGENT,%E4%BC%98%E9%85%B7*
 USER-AGENT,%E6%89%8B%E6%9C%BA%E6%B7%98%E5%AE%9D*
 
 # >> Vivo
+DOMAIN-SUFFIX,vivo.com
 DOMAIN-SUFFIX,vivo.com.cn
 
 # >> Oppo
@@ -95,6 +96,7 @@ DOMAIN-SUFFIX,21cn.com
 DOMAIN-SUFFIX,10086.cn
 DOMAIN-SUFFIX,139.com
 DOMAIN-SUFFIX,chinamobile.com
+DOMAIN-SUFFIX,cmpassport.com
 # Migu
 DOMAIN-SUFFIX,migucloud.com
 DOMAIN-SUFFIX,migu.cn
@@ -149,6 +151,8 @@ DOMAIN-SUFFIX,jdcdn.com
 # > Kingsoft
 DOMAIN-SUFFIX,iciba.com
 DOMAIN-SUFFIX,ksosoft.com
+DOMAIN-SUFFIX,wpscdn.com
+DOMAIN-SUFFIX,ks-cdn.com
 
 # >> Meitu
 DOMAIN-SUFFIX,meipai.com
@@ -169,6 +173,7 @@ DOMAIN-SUFFIX,166.net
 DOMAIN-SUFFIX,188.com
 DOMAIN-SUFFIX,lofter.com
 DOMAIN-SUFFIX,netease.com
+DOMAIN-SUFFIX,netease.im
 DOMAIN-SUFFIX,yeah.net
 DOMAIN-SUFFIX,ydstatic.com
 DOMAIN-SUFFIX,netstatic.net
@@ -228,7 +233,10 @@ DOMAIN-SUFFIX,douyuscdn.com
 DOMAIN-SUFFIX,douyutv.com
 
 # >> Kuaishou
+DOMAIN-SUFFIX,kuaishou.com
 DOMAIN-SUFFIX,gifshow.com
+DOMAIN-SUFFIX,yximgs.com
+DOMAIN-SUFFIX,kuaishouzt.com
 
 # >> PDD
 DOMAIN-SUFFIX,pinduoduo.com
@@ -297,6 +305,8 @@ DOMAIN-SUFFIX,edu.cn
 
 DOMAIN,cn.download.nvidia.com
 
+DOMAIN-SUFFIX,nubia.cn
+
 DOMAIN-SUFFIX,10086.cn
 DOMAIN-SUFFIX,12306.cn
 DOMAIN-SUFFIX,12306.com
@@ -309,6 +319,7 @@ DOMAIN-SUFFIX,58.com
 DOMAIN-SUFFIX,aicoinstorge.com
 DOMAIN-SUFFIX,air-matters.com
 DOMAIN-SUFFIX,air-matters.io
+DOMAIN-SUFFIX,appsimg.com
 DOMAIN-SUFFIX,autohome.com.cn
 DOMAIN-SUFFIX,bdatu.com
 DOMAIN-SUFFIX,cailianpress.com
@@ -319,6 +330,7 @@ DOMAIN-SUFFIX,chaoxing.cc
 DOMAIN-SUFFIX,chaoxing.com
 DOMAIN-SUFFIX,chaoxingv.com
 DOMAIN-SUFFIX,chinaso.com
+DOMAIN-SUFFIX,chinaz.com
 DOMAIN-SUFFIX,chuimg.com
 DOMAIN-SUFFIX,chunyu.mobi
 DOMAIN-SUFFIX,chushou.tv
@@ -341,6 +353,8 @@ DOMAIN-SUFFIX,frdic.com
 DOMAIN-SUFFIX,futu5.com
 DOMAIN-SUFFIX,futunn.com
 DOMAIN-SUFFIX,geilicdn.com
+DOMAIN-SUFFIX,geetest.com
+DOMAIN-SUFFIX,gitee.com
 DOMAIN-SUFFIX,godic.net
 DOMAIN-SUFFIX,hongxiu.com
 DOMAIN-SUFFIX,huxiucdn.com
@@ -351,14 +365,18 @@ DOMAIN-SUFFIX,ithome.com
 DOMAIN-SUFFIX,kaiyanapp.com
 DOMAIN-SUFFIX,keepcdn.com
 DOMAIN-SUFFIX,kkmh.com
+DOMAIN-SUFFIX,kugou.com
+DOMAIN-SUFFIX,leiniao.com
 DOMAIN-SUFFIX,linkedin.cn
 DOMAIN-SUFFIX,luojilab.com
 DOMAIN-SUFFIX,maoyan.com
 DOMAIN-SUFFIX,maoyun.tv
+DOMAIN-SUFFIX,mihoyo.com
 DOMAIN-SUFFIX,mobike.com
 DOMAIN-SUFFIX,msstatic.com
 DOMAIN-SUFFIX,mubu.com
 DOMAIN-SUFFIX,myzaker.com
+DOMAIN-SUFFIX,peiluyou.com
 DOMAIN-SUFFIX,pingan.com
 DOMAIN-SUFFIX,pplive.com
 DOMAIN-SUFFIX,pps.tv
@@ -371,23 +389,30 @@ DOMAIN-SUFFIX,qyer.com
 DOMAIN-SUFFIX,qyerstatic.com
 DOMAIN-SUFFIX,ronghub.com
 DOMAIN-SUFFIX,ruguoapp.com
+DOMAIN-SUFFIX,sandai.net
 DOMAIN-SUFFIX,s-reader.com
 DOMAIN-SUFFIX,smzdm.com
+DOMAIN-SUFFIX,speedtest.cn
 DOMAIN-SUFFIX,sspai.com
 DOMAIN-SUFFIX,suning.com
+DOMAIN-SUFFIX,szbdyd.com
+DOMAIN-SUFFIX,tantanapp.com
 DOMAIN-SUFFIX,takungpao.com
 DOMAIN-SUFFIX,tianyancha.com
 DOMAIN-SUFFIX,vip.com
 DOMAIN-SUFFIX,weidian.com
 DOMAIN-SUFFIX,xiachufang.com
+DOMAIN-SUFFIX,xiaohongshu.com
+DOMAIN-SUFFIX,xhscdn.com
 DOMAIN-SUFFIX,ximalaya.com
 DOMAIN-SUFFIX,xinhuanet.com
 DOMAIN-SUFFIX,xmcdn.com
+DOMAIN-SUFFIX,xunlei.com
+DOMAIN-SUFFIX,xycdn.com
 DOMAIN-SUFFIX,yinxiang.com
+DOMAIN-SUFFIX,yuanshen.com
 DOMAIN-SUFFIX,yuewen.com
+DOMAIN-SUFFIX,yy.com
 DOMAIN-SUFFIX,zdmimg.com
 DOMAIN-SUFFIX,zhangzs.com
-DOMAIN-SUFFIX,gitee.com
-DOMAIN-SUFFIX,chinaz.com
-DOMAIN-SUFFIX,speedtest.cn
-DOMAIN-SUFFIX,nubia.cn
+DOMAIN-SUFFIX,zuimeitianqi.com

+ 3 - 1
Source/non_ip/domestic.js

@@ -198,7 +198,9 @@ module.exports.DOMESTICS = /** @type {const} */({
       'baidubcr.com',
       'yunjiasu-cdn.net',
       'tieba.com',
-      'xiaodutv.com'
+      'xiaodutv.com',
+      'shifen.com',
+      'jomodns.com'
     ]
   },
   QIHOO360: {