Reduce Local DNS Mapping items by 120

This commit is contained in:
SukkaW
2024-10-11 17:32:59 +08:00
parent 0285de500b
commit da5350be98
3 changed files with 82 additions and 93 deletions

View File

@@ -12,28 +12,36 @@ import { appendArrayInPlace } from './lib/append-array-in-place';
import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR, SOURCE_DIR } from './constants/dir'; import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR, SOURCE_DIR } from './constants/dir';
import { RulesetOutput } from './lib/create-file'; import { RulesetOutput } from './lib/create-file';
function getRule(domain: string) { function getRule(domain: string): string[] {
switch (domain[0]) { const results: string[] = [];
case '+':
case '$': if (domain[0] === '$' || domain[0] === '+') {
return `DOMAIN-SUFFIX,${domain.slice(1)}`; results.push(`DOMAIN-SUFFIX,${domain.slice(1)}`);
default: } else if (domain.includes('?')) {
return `DOMAIN-SUFFIX,${domain}`; results.push(
`DOMAIN-WILDCARD,${domain}`,
`DOMAIN-WILDCARD,*.${domain}`
);
} else {
results.push(`DOMAIN-SUFFIX,${domain}`);
} }
return results;
} }
export const getDomesticAndDirectDomainsRulesetPromise = createMemoizedPromise(async () => { export const getDomesticAndDirectDomainsRulesetPromise = createMemoizedPromise(async () => {
const domestics = await readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/domestic.conf')); const domestics = await readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/domestic.conf'));
const directs = await readFileIntoProcessedArray(path.resolve(SOURCE_DIR, 'non_ip/direct.conf')); const directs = await readFileIntoProcessedArray(path.resolve(SOURCE_DIR, 'non_ip/direct.conf'));
const lans: string[] = []; const lans: string[] = [];
Object.entries(DOMESTICS).forEach(([, { domains }]) => { Object.entries(DOMESTICS).forEach(([, { domains }]) => {
appendArrayInPlace(domestics, domains.map(getRule)); appendArrayInPlace(domestics, domains.flatMap(getRule));
}); });
Object.entries(DIRECTS).forEach(([, { domains }]) => { Object.entries(DIRECTS).forEach(([, { domains }]) => {
appendArrayInPlace(directs, domains.map(getRule)); appendArrayInPlace(directs, domains.flatMap(getRule));
}); });
Object.entries(LANS).forEach(([, { domains }]) => { Object.entries(LANS).forEach(([, { domains }]) => {
appendArrayInPlace(lans, domains.map(getRule)); appendArrayInPlace(lans, domains.flatMap(getRule));
}); });
return [domestics, directs, lans] as const; return [domestics, directs, lans] as const;

View File

@@ -19,91 +19,75 @@ export const DIRECTS = {
hosts: {}, hosts: {},
domains: [ domains: [
'securelogin.com.cn', 'securelogin.com.cn',
'captive.apple.com' '$captive.apple.com',
'$hotspot.cslwifi.com'
] ]
}, },
ROUTER: { ROUTER: {
dns: 'system', dns: 'system',
hosts: {}, hosts: {},
domains: [ domains: [
'+home',
// 'zte.home', // ZTE CPE
// 'airbox.home',
// 'bthub.home',
// 'bthomehub.home',
// 'hitronhub.home',
// 'web.setup.home'
// Aruba Router // Aruba Router
'instant.arubanetworks.com', '$instant.arubanetworks.com',
'setmeup.arubanetworks.com', '$setmeup.arubanetworks.com',
// ASUS router // ASUS router
'router.asus.com', '$router.asus.com',
'repeater.asus.com', '$repeater.asus.com',
'asusrouter.com', 'asusrouter.com',
// NetGear // NetGear
'routerlogin.net', 'routerlogin.net',
'routerlogin.com',
// Tenda WiFi // Tenda WiFi
'tendawifi.com', 'tendawifi.com',
// TP-Link Router // TP-Link Router
'tplinkwifi.net', 'tplinkwifi.net',
'tplogin.cn', 'tplogin.cn',
'tplinkap.net', 'tplinkap.net',
'tplinkeap.net',
'tplinkmodem.net', 'tplinkmodem.net',
'tplinkplclogin.net', 'tplinkplclogin.net',
'tplinkrepeater.net', 'tplinkrepeater.net',
// Xiaomi Router
'miwifi.com',
// ZTE CPE
'zte.home',
// UniFi // UniFi
'+ui.direct', '+ui.direct',
'$unifi', '$unifi',
'amplifi.lan',
// Other Router // Other Router
'hiwifi.com', '+huaweimobilewifi.com',
'huaweimobilewifi.com', '+router',
'my.router', // 'my.router',
'phicomm.me', // 'samsung.router',
'router.ctc', // '$easy.box', // Vodafone EasyBox
'peiluyou.com', '$aterm.me',
'airbox.home', '$console.gl-inet.com',
'arcor.easybox', // '$fritz.box',
'aterm.me', // '$fritz.repeater',
'bthub.home', // '$myfritz.box',
'bthomehub.home', // '$speedport.ip', // Telekom
'congstar.box', // '$giga.cube', // Vodafone GigaCube
'connect.box', '$homerouter.cpe', // Huawei LTE CPE
'console.gl-inet.com', '$mobile.hotspot', // T-Mobile Hotspot
'easy.box', '$ntt.setup',
'etxr', '$pi.hole',
'fritz.box', '+plex.direct'
'fritz.nas', // 'web.setup'
'fritz.repeater',
'giga.cube',
'hi.link',
'hitronhub.home',
'homerouter.cpe',
'myfritz.box',
'mobile.hotspot',
'ntt.setup',
'pi.hole',
'plex.direct',
'app.plex.tv',
'routerlogin.com',
'samsung.router',
'speedport.ip',
'steamloopback.host',
'web.setup',
'web.setup.home'
] ]
}, },
SYSTEM: { SYSTEM: {
dns: 'system', dns: 'system',
hosts: {}, hosts: {},
domains: [ domains: [
'_hotspot_.m2m', '+m2m',
'hotspot.cslwifi.com',
// TailScale Magic DNS // TailScale Magic DNS
'ts.net', '+ts.net',
// AdGuard // AdGuard
'$injections.adguard.org', '$injections.adguard.org',
'$local.adguard.org', '$local.adguard.org',
// SetApp
'setapp.click',
// Android ADB // Android ADB
'_adb-tls-connect._tcp' '_adb-tls-connect._tcp'
] ]
@@ -115,7 +99,8 @@ export const LANS = {
dns: 'system', dns: 'system',
hosts: {}, hosts: {},
domains: [ domains: [
'lan', '+lan',
// 'amplifi.lan',
'$localhost', '$localhost',
'localdomain', 'localdomain',
'home.arpa', 'home.arpa',
@@ -125,16 +110,17 @@ export const LANS = {
'17.172.in-addr.arpa', '17.172.in-addr.arpa',
'18.172.in-addr.arpa', '18.172.in-addr.arpa',
'19.172.in-addr.arpa', '19.172.in-addr.arpa',
'20.172.in-addr.arpa', '2?.172.in-addr.arpa',
'21.172.in-addr.arpa', // '20.172.in-addr.arpa',
'22.172.in-addr.arpa', // '21.172.in-addr.arpa',
'23.172.in-addr.arpa', // '22.172.in-addr.arpa',
'24.172.in-addr.arpa', // '23.172.in-addr.arpa',
'25.172.in-addr.arpa', // '24.172.in-addr.arpa',
'26.172.in-addr.arpa', // '25.172.in-addr.arpa',
'27.172.in-addr.arpa', // '26.172.in-addr.arpa',
'28.172.in-addr.arpa', // '27.172.in-addr.arpa',
'29.172.in-addr.arpa', // '28.172.in-addr.arpa',
// '29.172.in-addr.arpa',
'30.172.in-addr.arpa', '30.172.in-addr.arpa',
'31.172.in-addr.arpa', '31.172.in-addr.arpa',
'168.192.in-addr.arpa', '168.192.in-addr.arpa',

View File

@@ -8,7 +8,7 @@ export const DOMESTICS = {
dns: 'quic://dns.alidns.com:853', dns: 'quic://dns.alidns.com:853',
domains: [ domains: [
'uc.cn', 'uc.cn',
'ucweb.com', // 'ucweb.com', // UC International
'alibaba.com', 'alibaba.com',
'+alicdn.com', '+alicdn.com',
'+ialicdn.com', '+ialicdn.com',
@@ -26,7 +26,7 @@ export const DOMESTICS = {
'+alipayobjects.com', '+alipayobjects.com',
'alibaba-inc.com', 'alibaba-inc.com',
'+alibabausercontent.com', '+alibabausercontent.com',
'alibabadns.com', '+alibabadns.com',
'alicloudccp.com', 'alicloudccp.com',
'alipan.com', 'alipan.com',
'aliyundrive.com', 'aliyundrive.com',
@@ -36,8 +36,8 @@ export const DOMESTICS = {
'cainiaoyizhan.com', 'cainiaoyizhan.com',
'guoguo-app.com', 'guoguo-app.com',
'etao.com', 'etao.com',
'yitao.com',
'1688.com', '1688.com',
'16888.com',
'amap.com', 'amap.com',
'gaode.com', 'gaode.com',
'autonavi.com', 'autonavi.com',
@@ -49,7 +49,7 @@ export const DOMESTICS = {
'+taobaocdn.com', '+taobaocdn.com',
'+tbcache.com', '+tbcache.com',
'tmall.com', 'tmall.com',
'tmall.hk', // 'tmall.hk',
'xiami.com', 'xiami.com',
'xiami.net', 'xiami.net',
'+ykimg.com', '+ykimg.com',
@@ -107,7 +107,7 @@ export const DOMESTICS = {
'+qlogo.cn', '+qlogo.cn',
'qq.com', 'qq.com',
'qq.com.cn', 'qq.com.cn',
'qq.wang', // 'qq.wang',
'qqmail.cn', 'qqmail.cn',
'qqmail.com', 'qqmail.com',
'qzone.com', 'qzone.com',
@@ -132,7 +132,6 @@ export const DOMESTICS = {
'+tencentcs.cn', '+tencentcs.cn',
'+qcloudimg.com', '+qcloudimg.com',
'dnspod.cn', 'dnspod.cn',
'yitao.com',
'anticheatexpert.com', 'anticheatexpert.com',
'$url.cn', '$url.cn',
'+qlivecdn.com', '+qlivecdn.com',
@@ -193,7 +192,7 @@ export const DOMESTICS = {
'duokan.com', 'duokan.com',
'+mi-img.com', '+mi-img.com',
'mi-fds.com', 'mi-fds.com',
'mifile.cn', '+mifile.cn',
'miui.com', 'miui.com',
'xiaomi.com', 'xiaomi.com',
'xiaomi.cn', 'xiaomi.cn',
@@ -269,7 +268,7 @@ export const DOMESTICS = {
'+yunjiasu-cdn.net', '+yunjiasu-cdn.net',
'tieba.com', 'tieba.com',
'xiaodutv.com', 'xiaodutv.com',
'shifen.com', '+shifen.com',
'+jomodns.com', '+jomodns.com',
'+bdydns.com', '+bdydns.com',
'+jomoxc.com', '+jomoxc.com',
@@ -289,21 +288,17 @@ export const DOMESTICS = {
dns: 'https://dns.360.net/dns-query', dns: 'https://dns.360.net/dns-query',
domains: [ domains: [
'+qhimg.com', '+qhimg.com',
'+qhimgs0.com', '+qhimgs.com',
'+qhimgs1.com', '+qhimgs?.com',
'+qhimgs2.com', // '+qhimgs0.com',
'+qhimgs3.com', // '+qhimgs1.com',
'+qhimgs4.com', // '+qhimgs2.com',
'+qhimgs5.com', // '+qhimgs3.com',
'+qhimgs6.com', // '+qhimgs4.com',
// '+qhimgs5.com',
// '+qhimgs6.com',
'+qhres.com', '+qhres.com',
'+qhres0.com',
'+qhres1.com',
'+qhres2.com', '+qhres2.com',
'+qhres3.com',
'+qhres4.com',
'+qhres5.com',
'+qhres6.com',
'+qhmsg.com', '+qhmsg.com',
'+qhstatic.com', '+qhstatic.com',
'+qhupdate.com', '+qhupdate.com',