mirror of
https://github.com/SukkaW/Surge.git
synced 2026-01-28 17:41:54 +08:00
Reduce Local DNS Mapping items by 120
This commit is contained in:
@@ -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 { RulesetOutput } from './lib/create-file';
|
||||
|
||||
function getRule(domain: string) {
|
||||
switch (domain[0]) {
|
||||
case '+':
|
||||
case '$':
|
||||
return `DOMAIN-SUFFIX,${domain.slice(1)}`;
|
||||
default:
|
||||
return `DOMAIN-SUFFIX,${domain}`;
|
||||
function getRule(domain: string): string[] {
|
||||
const results: string[] = [];
|
||||
|
||||
if (domain[0] === '$' || domain[0] === '+') {
|
||||
results.push(`DOMAIN-SUFFIX,${domain.slice(1)}`);
|
||||
} else if (domain.includes('?')) {
|
||||
results.push(
|
||||
`DOMAIN-WILDCARD,${domain}`,
|
||||
`DOMAIN-WILDCARD,*.${domain}`
|
||||
);
|
||||
} else {
|
||||
results.push(`DOMAIN-SUFFIX,${domain}`);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
export const getDomesticAndDirectDomainsRulesetPromise = createMemoizedPromise(async () => {
|
||||
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 lans: string[] = [];
|
||||
|
||||
Object.entries(DOMESTICS).forEach(([, { domains }]) => {
|
||||
appendArrayInPlace(domestics, domains.map(getRule));
|
||||
appendArrayInPlace(domestics, domains.flatMap(getRule));
|
||||
});
|
||||
Object.entries(DIRECTS).forEach(([, { domains }]) => {
|
||||
appendArrayInPlace(directs, domains.map(getRule));
|
||||
appendArrayInPlace(directs, domains.flatMap(getRule));
|
||||
});
|
||||
Object.entries(LANS).forEach(([, { domains }]) => {
|
||||
appendArrayInPlace(lans, domains.map(getRule));
|
||||
appendArrayInPlace(lans, domains.flatMap(getRule));
|
||||
});
|
||||
|
||||
return [domestics, directs, lans] as const;
|
||||
|
||||
@@ -19,91 +19,75 @@ export const DIRECTS = {
|
||||
hosts: {},
|
||||
domains: [
|
||||
'securelogin.com.cn',
|
||||
'captive.apple.com'
|
||||
'$captive.apple.com',
|
||||
'$hotspot.cslwifi.com'
|
||||
]
|
||||
},
|
||||
ROUTER: {
|
||||
dns: 'system',
|
||||
hosts: {},
|
||||
domains: [
|
||||
'+home',
|
||||
// 'zte.home', // ZTE CPE
|
||||
// 'airbox.home',
|
||||
// 'bthub.home',
|
||||
// 'bthomehub.home',
|
||||
// 'hitronhub.home',
|
||||
// 'web.setup.home'
|
||||
|
||||
// Aruba Router
|
||||
'instant.arubanetworks.com',
|
||||
'setmeup.arubanetworks.com',
|
||||
'$instant.arubanetworks.com',
|
||||
'$setmeup.arubanetworks.com',
|
||||
// ASUS router
|
||||
'router.asus.com',
|
||||
'repeater.asus.com',
|
||||
'$router.asus.com',
|
||||
'$repeater.asus.com',
|
||||
'asusrouter.com',
|
||||
// NetGear
|
||||
'routerlogin.net',
|
||||
'routerlogin.com',
|
||||
// Tenda WiFi
|
||||
'tendawifi.com',
|
||||
// TP-Link Router
|
||||
'tplinkwifi.net',
|
||||
'tplogin.cn',
|
||||
'tplinkap.net',
|
||||
'tplinkeap.net',
|
||||
'tplinkmodem.net',
|
||||
'tplinkplclogin.net',
|
||||
'tplinkrepeater.net',
|
||||
// Xiaomi Router
|
||||
'miwifi.com',
|
||||
// ZTE CPE
|
||||
'zte.home',
|
||||
// UniFi
|
||||
'+ui.direct',
|
||||
'$unifi',
|
||||
'amplifi.lan',
|
||||
// Other Router
|
||||
'hiwifi.com',
|
||||
'huaweimobilewifi.com',
|
||||
'my.router',
|
||||
'phicomm.me',
|
||||
'router.ctc',
|
||||
'peiluyou.com',
|
||||
'airbox.home',
|
||||
'arcor.easybox',
|
||||
'aterm.me',
|
||||
'bthub.home',
|
||||
'bthomehub.home',
|
||||
'congstar.box',
|
||||
'connect.box',
|
||||
'console.gl-inet.com',
|
||||
'easy.box',
|
||||
'etxr',
|
||||
'fritz.box',
|
||||
'fritz.nas',
|
||||
'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'
|
||||
'+huaweimobilewifi.com',
|
||||
'+router',
|
||||
// 'my.router',
|
||||
// 'samsung.router',
|
||||
// '$easy.box', // Vodafone EasyBox
|
||||
'$aterm.me',
|
||||
'$console.gl-inet.com',
|
||||
// '$fritz.box',
|
||||
// '$fritz.repeater',
|
||||
// '$myfritz.box',
|
||||
// '$speedport.ip', // Telekom
|
||||
// '$giga.cube', // Vodafone GigaCube
|
||||
'$homerouter.cpe', // Huawei LTE CPE
|
||||
'$mobile.hotspot', // T-Mobile Hotspot
|
||||
'$ntt.setup',
|
||||
'$pi.hole',
|
||||
'+plex.direct'
|
||||
// 'web.setup'
|
||||
]
|
||||
},
|
||||
SYSTEM: {
|
||||
dns: 'system',
|
||||
hosts: {},
|
||||
domains: [
|
||||
'_hotspot_.m2m',
|
||||
'hotspot.cslwifi.com',
|
||||
'+m2m',
|
||||
// TailScale Magic DNS
|
||||
'ts.net',
|
||||
'+ts.net',
|
||||
// AdGuard
|
||||
'$injections.adguard.org',
|
||||
'$local.adguard.org',
|
||||
// SetApp
|
||||
'setapp.click',
|
||||
// Android ADB
|
||||
'_adb-tls-connect._tcp'
|
||||
]
|
||||
@@ -115,7 +99,8 @@ export const LANS = {
|
||||
dns: 'system',
|
||||
hosts: {},
|
||||
domains: [
|
||||
'lan',
|
||||
'+lan',
|
||||
// 'amplifi.lan',
|
||||
'$localhost',
|
||||
'localdomain',
|
||||
'home.arpa',
|
||||
@@ -125,16 +110,17 @@ export const LANS = {
|
||||
'17.172.in-addr.arpa',
|
||||
'18.172.in-addr.arpa',
|
||||
'19.172.in-addr.arpa',
|
||||
'20.172.in-addr.arpa',
|
||||
'21.172.in-addr.arpa',
|
||||
'22.172.in-addr.arpa',
|
||||
'23.172.in-addr.arpa',
|
||||
'24.172.in-addr.arpa',
|
||||
'25.172.in-addr.arpa',
|
||||
'26.172.in-addr.arpa',
|
||||
'27.172.in-addr.arpa',
|
||||
'28.172.in-addr.arpa',
|
||||
'29.172.in-addr.arpa',
|
||||
'2?.172.in-addr.arpa',
|
||||
// '20.172.in-addr.arpa',
|
||||
// '21.172.in-addr.arpa',
|
||||
// '22.172.in-addr.arpa',
|
||||
// '23.172.in-addr.arpa',
|
||||
// '24.172.in-addr.arpa',
|
||||
// '25.172.in-addr.arpa',
|
||||
// '26.172.in-addr.arpa',
|
||||
// '27.172.in-addr.arpa',
|
||||
// '28.172.in-addr.arpa',
|
||||
// '29.172.in-addr.arpa',
|
||||
'30.172.in-addr.arpa',
|
||||
'31.172.in-addr.arpa',
|
||||
'168.192.in-addr.arpa',
|
||||
|
||||
@@ -8,7 +8,7 @@ export const DOMESTICS = {
|
||||
dns: 'quic://dns.alidns.com:853',
|
||||
domains: [
|
||||
'uc.cn',
|
||||
'ucweb.com',
|
||||
// 'ucweb.com', // UC International
|
||||
'alibaba.com',
|
||||
'+alicdn.com',
|
||||
'+ialicdn.com',
|
||||
@@ -26,7 +26,7 @@ export const DOMESTICS = {
|
||||
'+alipayobjects.com',
|
||||
'alibaba-inc.com',
|
||||
'+alibabausercontent.com',
|
||||
'alibabadns.com',
|
||||
'+alibabadns.com',
|
||||
'alicloudccp.com',
|
||||
'alipan.com',
|
||||
'aliyundrive.com',
|
||||
@@ -36,8 +36,8 @@ export const DOMESTICS = {
|
||||
'cainiaoyizhan.com',
|
||||
'guoguo-app.com',
|
||||
'etao.com',
|
||||
'yitao.com',
|
||||
'1688.com',
|
||||
'16888.com',
|
||||
'amap.com',
|
||||
'gaode.com',
|
||||
'autonavi.com',
|
||||
@@ -49,7 +49,7 @@ export const DOMESTICS = {
|
||||
'+taobaocdn.com',
|
||||
'+tbcache.com',
|
||||
'tmall.com',
|
||||
'tmall.hk',
|
||||
// 'tmall.hk',
|
||||
'xiami.com',
|
||||
'xiami.net',
|
||||
'+ykimg.com',
|
||||
@@ -107,7 +107,7 @@ export const DOMESTICS = {
|
||||
'+qlogo.cn',
|
||||
'qq.com',
|
||||
'qq.com.cn',
|
||||
'qq.wang',
|
||||
// 'qq.wang',
|
||||
'qqmail.cn',
|
||||
'qqmail.com',
|
||||
'qzone.com',
|
||||
@@ -132,7 +132,6 @@ export const DOMESTICS = {
|
||||
'+tencentcs.cn',
|
||||
'+qcloudimg.com',
|
||||
'dnspod.cn',
|
||||
'yitao.com',
|
||||
'anticheatexpert.com',
|
||||
'$url.cn',
|
||||
'+qlivecdn.com',
|
||||
@@ -193,7 +192,7 @@ export const DOMESTICS = {
|
||||
'duokan.com',
|
||||
'+mi-img.com',
|
||||
'mi-fds.com',
|
||||
'mifile.cn',
|
||||
'+mifile.cn',
|
||||
'miui.com',
|
||||
'xiaomi.com',
|
||||
'xiaomi.cn',
|
||||
@@ -269,7 +268,7 @@ export const DOMESTICS = {
|
||||
'+yunjiasu-cdn.net',
|
||||
'tieba.com',
|
||||
'xiaodutv.com',
|
||||
'shifen.com',
|
||||
'+shifen.com',
|
||||
'+jomodns.com',
|
||||
'+bdydns.com',
|
||||
'+jomoxc.com',
|
||||
@@ -289,21 +288,17 @@ export const DOMESTICS = {
|
||||
dns: 'https://dns.360.net/dns-query',
|
||||
domains: [
|
||||
'+qhimg.com',
|
||||
'+qhimgs0.com',
|
||||
'+qhimgs1.com',
|
||||
'+qhimgs2.com',
|
||||
'+qhimgs3.com',
|
||||
'+qhimgs4.com',
|
||||
'+qhimgs5.com',
|
||||
'+qhimgs6.com',
|
||||
'+qhimgs.com',
|
||||
'+qhimgs?.com',
|
||||
// '+qhimgs0.com',
|
||||
// '+qhimgs1.com',
|
||||
// '+qhimgs2.com',
|
||||
// '+qhimgs3.com',
|
||||
// '+qhimgs4.com',
|
||||
// '+qhimgs5.com',
|
||||
// '+qhimgs6.com',
|
||||
'+qhres.com',
|
||||
'+qhres0.com',
|
||||
'+qhres1.com',
|
||||
'+qhres2.com',
|
||||
'+qhres3.com',
|
||||
'+qhres4.com',
|
||||
'+qhres5.com',
|
||||
'+qhres6.com',
|
||||
'+qhmsg.com',
|
||||
'+qhstatic.com',
|
||||
'+qhupdate.com',
|
||||
|
||||
Reference in New Issue
Block a user