From 6c46bd8155543d6c64b1e5c481816905f5b88d3a Mon Sep 17 00:00:00 2001 From: Wydy <1937986+wydy@users.noreply.github.com> Date: Tue, 4 Apr 2023 10:07:49 +0800 Subject: [PATCH] Add ability to process IPV6 CIDR (#132) * Support IPV6 CIDR * Remove duplicate domain from GFWList and update Telegram CIDR * Support DOMAIN-SUFFIX rules --- factory/ad.py | 7 +++- factory/build_confs.py | 4 ++ factory/manual_proxy.txt | 82 +++++++++++++--------------------------- 3 files changed, 35 insertions(+), 58 deletions(-) diff --git a/factory/ad.py b/factory/ad.py index 74a5c78..50d211a 100644 --- a/factory/ad.py +++ b/factory/ad.py @@ -96,7 +96,10 @@ for row in rule: row = row.lstrip('.*') # 清除后缀 - row = row.rstrip('/^*') + row = row.rstrip('/*') + if row[-1] == '^': + row = '.'+row + row = row.rstrip('^') row = re.sub(r':\d{2,5}$', '', row) # 清除端口 # 不能含有的字符 @@ -109,7 +112,7 @@ for row in rule: continue # 只匹配域名或 IP - if re.match(r'^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,9}$', row) or re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', row): + if re.match(r'^\.?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})*\.[a-zA-Z0-9][-a-zA-Z0-9]{1,}$', row) or re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', row): domains.append(row) print('done.') diff --git a/factory/build_confs.py b/factory/build_confs.py index f296a0d..30c0444 100644 --- a/factory/build_confs.py +++ b/factory/build_confs.py @@ -38,6 +38,10 @@ def getRulesStringFromFile(path, kind): prefix = 'IP-CIDR' if '/' not in content: content += '/32' + elif re.match(r'((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?', content): + prefix = 'IP-CIDR' + if '/' not in content: + content += '/128' elif '.' not in content and len(content) > 1: prefix = 'DOMAIN-KEYWORD' diff --git a/factory/manual_proxy.txt b/factory/manual_proxy.txt index 86b89d2..5f85adf 100644 --- a/factory/manual_proxy.txt +++ b/factory/manual_proxy.txt @@ -1,71 +1,48 @@ # 手工定义的 Proxy 列表 -theinitium.com - -youtu.be - -netflix.com - +#TED tedcdn.com -#161 可能以后会和GFWList重复 -9gag.com #Telegram -67.198.55.0/24 +t.me +tdesktop.com +telegra.ph +telegram.me +telegram.org +telesco.pe +91.108.56.0/22 91.108.4.0/22 91.108.8.0/22 -91.108.12.0/22 91.108.16.0/22 -91.108.56.0/22 -109.239.140.0/24 +91.108.12.0/22 149.154.160.0/20 -149.154.164.0/22 -149.154.168.0/22 -149.154.172.0/22 +91.105.192.0/23 +91.108.20.0/22 +185.76.151.0/24 +2001:b28:f23d::/48 +2001:b28:f23f::/48 +2001:67c:4e8::/48 +2001:b28:f23c::/48 +2a0a:f280::/32 -#instagram -cdninstagram.com #disqus disquscdn.com -gist.github.com - -# 首页直连,但子域名需翻墙 -onedrive.live.com - -#20 开车 -t66y.com -91porn.com - -#132 -feedly.com #50 whatsapp -whatsapp.com -whatsapp.net 18.194.0.0/15 34.224.0.0/12 #54 台湾香港澳门 常用网站 -ptt.cc -mingpaocanada.com -mingpao.com -appledaily.com appledaily.tw -nextmag.com.tw -thestandnews.com -#60 GMail -# 手机 smtp 和 imap 需要用到 -gmail.com #72 #112 Google Voice 74.125.0.0/16 #85(可能冗余) -yt3.ggpht.com www-google-analytics.l.google.com ssl-google-analytics.l.google.com partnerad.l.google.com @@ -79,9 +56,6 @@ afd.l.google.com #175 华尔街邮报 dowjones.com -#159 -thetvdb.com - #180 OneDrive(可能冗余) bcbits.com ogma.iad.appboy.com @@ -91,16 +65,12 @@ centralus1.mediap.svc.ms dm.files.1drv.com mobile.pipe.aria.microsoft.com gate.hockeyapp.net -skyapi.live.net api.onedrive.com vortex.data.microsoft.com #183 mendeley.com -#192 播客收听应用程序 overcast -overcast.fm - #205 APPLE NEWS news-events.apple.com news-edge.apple.com @@ -118,8 +88,6 @@ apple.news news.iadsdk.apple.com #github -github.com -github.io raw.githubusercontent.com # news @@ -148,7 +116,6 @@ init-s01st-lb.push-apple.com.akadns.net gsp85-cn-ssl.ls.apple.com itunes-apple.com.akadns.net gspe21.ls.apple.com -gs-loc.apple.com mesu-china.apple.com.akadns.net mesu-cdn.apple.com.akadns.net ocsp-lb.apple.com.akadns.net @@ -164,9 +131,6 @@ swscan-cdn.apple.com.akadns.net valid.origin-apple.com.akadns.net phobos.apple.com -# linkedin -linkedin.com - # DisneyPlus disney.asia disney.be @@ -438,11 +402,17 @@ wholekidsfoundation.org wholeplanetfoundation.org yamaxun.com -# OpenAI -openai.com - # Paramount paramountplus.com # New Bing bing.com + +# DNS Leak +dnsleaktest.com +ipleak.net +browserleaks.com +browserleaks.org +vpnunlimited.com +whrq.net +