Compare commits

..

2 Commits

6 changed files with 221 additions and 174 deletions

View File

@@ -11,6 +11,7 @@ on:
- 'direct-domains.txt'
- 'proxy-domains.txt'
- 'cidrs-cn.txt'
- '!gfw.pac'
workflow_dispatch:
jobs:

2
.gitignore vendored
View File

@@ -43,3 +43,5 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk
test.js

View File

@@ -469,7 +469,6 @@
43.192.0.0/14
43.196.0.0/15
43.224.12.0/22
43.224.22.0/24
43.224.24.0/22
43.224.44.0/22
43.224.52.0/22
@@ -804,6 +803,7 @@
44.31.216.0/24
44.32.143.0/24
45.9.11.0/24
45.12.185.0/24
45.40.192.0/18
45.65.16.0/20
45.112.132.0/22
@@ -951,8 +951,6 @@
45.202.209.0/24
45.202.210.0/23
45.202.212.0/24
45.203.129.0/24
45.203.130.0/24
45.248.8.0/22
45.248.80.0/22
45.248.88.0/22
@@ -4602,7 +4600,13 @@
139.5.192.0/22
139.5.204.0/22
139.5.244.0/22
139.9.0.0/16
139.9.0.0/18
139.9.64.0/19
139.9.96.0/23
139.9.100.0/22
139.9.104.0/21
139.9.112.0/20
139.9.128.0/17
139.129.0.0/16
139.138.238.0/28
139.148.0.0/16
@@ -4767,7 +4771,7 @@
154.72.47.0/24
154.83.28.0/24
154.86.116.0/24
154.203.159.0/24
154.91.158.0/23
154.208.140.0/22
154.208.144.0/20
154.208.160.0/21
@@ -5042,7 +5046,6 @@
175.0.0.0/12
175.16.0.0/13
175.24.0.0/14
175.29.22.0/23
175.30.0.0/15
175.42.0.0/15
175.44.0.0/16
@@ -6808,6 +6811,7 @@
212.129.128.0/17
213.199.169.0/24
213.255.231.0/24
217.177.74.0/24
218.0.0.0/11
218.56.0.0/13
218.64.0.0/11
@@ -7109,7 +7113,6 @@
2001:470:8:1b5::/64
2001:470:8:1c8::/63
2001:470:8:1d8::/64
2001:470:8:1dd::/64
2001:470:8:1de::/64
2001:470:8:1e5::/64
2001:470:8:1f5::/64
@@ -7160,7 +7163,6 @@
2001:470:8:4a9::/64
2001:470:8:4b0::/64
2001:470:8:4ce::/64
2001:470:8:4d0::/64
2001:470:8:4d7::/64
2001:470:8:4d9::/64
2001:470:8:4e0::/64
@@ -7171,6 +7173,8 @@
2001:470:8:547::/64
2001:470:8:550::/64
2001:470:8:56a::/64
2001:470:8:574::/63
2001:470:8:577::/64
2001:470:8:71d::/64
2001:470:8:7d7::/64
2001:470:8:7e6::/64
@@ -7293,7 +7297,7 @@
2001:470:b:31f::/64
2001:470:b:32c::/64
2001:470:b:332::/64
2001:470:b:340::/63
2001:470:b:340::/64
2001:470:b:359::/64
2001:470:b:35f::/64
2001:470:b:362::/63
@@ -7336,7 +7340,6 @@
2001:470:b:491::/64
2001:470:b:493::/64
2001:470:b:4a8::/64
2001:470:b:4ab::/64
2001:470:b:4ad::/64
2001:470:b:4b3::/64
2001:470:b:4b5::/64
@@ -7623,7 +7626,6 @@
2001:470:d:2f3::/64
2001:470:d:2f4::/64
2001:470:d:2f6::/64
2001:470:d:2f8::/64
2001:470:d:2fb::/64
2001:470:d:2fc::/64
2001:470:d:2fe::/64
@@ -7726,10 +7728,10 @@
2001:470:d:453::/64
2001:470:d:454::/64
2001:470:d:45b::/64
2001:470:d:45e::/64
2001:470:d:462::/63
2001:470:d:468::/64
2001:470:d:46e::/64
2001:470:d:473::/64
2001:470:d:476::/64
2001:470:d:478::/64
2001:470:d:47a::/63
@@ -7739,7 +7741,7 @@
2001:470:d:489::/64
2001:470:d:48a::/63
2001:470:d:492::/63
2001:470:d:49b::/64
2001:470:d:49a::/63
2001:470:d:4a0::/64
2001:470:d:4a4::/64
2001:470:d:4a8::/63
@@ -7798,8 +7800,9 @@
2001:470:d:54e::/63
2001:470:d:555::/64
2001:470:d:556::/64
2001:470:d:558::/63
2001:470:d:55c::/62
2001:470:d:558::/64
2001:470:d:55d::/64
2001:470:d:55e::/63
2001:470:d:560::/62
2001:470:d:566::/64
2001:470:d:569::/64
@@ -7874,12 +7877,18 @@
2001:470:d:635::/64
2001:470:d:636::/64
2001:470:d:638::/63
2001:470:d:63b::/64
2001:470:d:63d::/64
2001:470:d:640::/64
2001:470:d:642::/63
2001:470:d:644::/64
2001:470:d:647::/64
2001:470:d:64a::/64
2001:470:d:64d::/64
2001:470:d:650::/64
2001:470:d:658::/64
2001:470:d:65a::/63
2001:470:d:661::/64
2001:470:d:66c::/64
2001:470:d:671::/64
2001:470:d:678::/64
@@ -8139,7 +8148,7 @@
2001:470:d:adc::/64
2001:470:d:ae2::/64
2001:470:d:ae6::/64
2001:470:d:aee::/63
2001:470:d:aef::/64
2001:470:d:af1::/64
2001:470:d:af5::/64
2001:470:d:af7::/64
@@ -8266,7 +8275,6 @@
2001:470:d:d54::/64
2001:470:d:d56::/64
2001:470:d:d62::/63
2001:470:d:d66::/64
2001:470:d:d68::/64
2001:470:d:d6d::/64
2001:470:d:d6f::/64
@@ -8506,7 +8514,6 @@
2001:470:d:10a2::/63
2001:470:d:10a4::/64
2001:470:d:10a6::/63
2001:470:d:10a8::/64
2001:470:d:10ac::/63
2001:470:d:10b0::/64
2001:470:d:10b3::/64
@@ -9164,7 +9171,6 @@
2001:470:19:4d2::/63
2001:470:19:4d4::/63
2001:470:19:4d7::/64
2001:470:19:4d8::/64
2001:470:19:4da::/63
2001:470:19:4dc::/63
2001:470:19:4e2::/63
@@ -9745,8 +9751,7 @@
2001:470:19:adc::/63
2001:470:19:ae0::/61
2001:470:19:ae9::/64
2001:470:19:aec::/63
2001:470:19:aef::/64
2001:470:19:aec::/62
2001:470:19:af0::/64
2001:470:19:af3::/64
2001:470:19:af4::/63
@@ -9888,7 +9893,6 @@
2001:470:19:c5f::/64
2001:470:19:c60::/63
2001:470:19:c62::/64
2001:470:19:c67::/64
2001:470:19:c69::/64
2001:470:19:c6a::/64
2001:470:19:c6e::/63
@@ -10053,9 +10057,9 @@
2001:470:19:e12::/64
2001:470:19:e14::/64
2001:470:19:e16::/63
2001:470:19:e19::/64
2001:470:19:e1a::/63
2001:470:19:e1c::/63
2001:470:19:e1e::/64
2001:470:19:e1c::/62
2001:470:19:e20::/63
2001:470:19:e22::/64
2001:470:19:e27::/64
@@ -10144,11 +10148,28 @@
2001:470:19:f2a::/64
2001:470:19:f2d::/64
2001:470:19:f2e::/64
2001:470:19:f30::/64
2001:470:19:f33::/64
2001:470:19:f34::/63
2001:470:19:f36::/64
2001:470:19:f38::/63
2001:470:19:f3a::/64
2001:470:19:f3f::/64
2001:470:19:f40::/63
2001:470:19:f44::/62
2001:470:19:f49::/64
2001:470:19:f4a::/64
2001:470:19:f4e::/64
2001:470:19:f51::/64
2001:470:19:f53::/64
2001:470:19:f54::/63
2001:470:19:f56::/64
2001:470:19:f58::/63
2001:470:19:f5a::/64
2001:470:19:f64::/64
2001:470:19:f67::/64
2001:470:19:f68::/64
2001:470:19:f6a::/64
2001:470:19:f78::/64
2001:470:19:f81::/64
2001:470:19:f87::/64
@@ -10360,13 +10381,14 @@
2001:470:24:42::/64
2001:470:24:46::/64
2001:470:24:4a::/63
2001:470:24:4c::/63
2001:470:24:4c::/64
2001:470:24:55::/64
2001:470:24:57::/64
2001:470:24:5b::/64
2001:470:24:5f::/64
2001:470:24:60::/63
2001:470:24:62::/64
2001:470:24:67::/64
2001:470:24:6e::/63
2001:470:24:72::/64
2001:470:24:76::/63
@@ -10447,7 +10469,7 @@
2001:470:24:17c::/64
2001:470:24:17e::/63
2001:470:24:182::/63
2001:470:24:18c::/63
2001:470:24:18d::/64
2001:470:24:18f::/64
2001:470:24:190::/64
2001:470:24:192::/64
@@ -10653,8 +10675,7 @@
2001:470:24:4a4::/63
2001:470:24:4a8::/63
2001:470:24:4ab::/64
2001:470:24:4ac::/63
2001:470:24:4af::/64
2001:470:24:4ac::/62
2001:470:24:4b0::/64
2001:470:24:4c0::/64
2001:470:24:4c4::/64
@@ -10674,15 +10695,20 @@
2001:470:24:4ff::/64
2001:470:24:502::/64
2001:470:24:506::/64
2001:470:24:50a::/64
2001:470:24:50c::/64
2001:470:24:510::/63
2001:470:24:513::/64
2001:470:24:514::/63
2001:470:24:516::/64
2001:470:24:51b::/64
2001:470:24:521::/64
2001:470:24:523::/64
2001:470:24:524::/64
2001:470:24:526::/64
2001:470:24:528::/64
2001:470:24:52b::/64
2001:470:24:52f::/64
2001:470:24:531::/64
2001:470:24:532::/64
2001:470:24:536::/64
@@ -10924,9 +10950,9 @@
2001:470:36:118::/64
2001:470:36:11f::/64
2001:470:36:120::/63
2001:470:36:131::/64
2001:470:36:136::/63
2001:470:36:13f::/64
2001:470:36:169::/64
2001:470:36:16d::/64
2001:470:36:171::/64
2001:470:36:183::/64
@@ -11056,7 +11082,6 @@
2001:470:36:4b9::/64
2001:470:36:4bb::/64
2001:470:36:4bc::/63
2001:470:36:4d4::/64
2001:470:36:4dc::/63
2001:470:36:4e0::/63
2001:470:36:4e5::/64
@@ -11076,7 +11101,6 @@
2001:470:36:532::/64
2001:470:36:53c::/64
2001:470:36:53e::/64
2001:470:36:542::/64
2001:470:36:545::/64
2001:470:36:547::/64
2001:470:36:54a::/64
@@ -11110,15 +11134,23 @@
2001:470:36:5de::/63
2001:470:36:5e6::/64
2001:470:36:5fa::/64
2001:470:36:5fd::/64
2001:470:36:5fe::/64
2001:470:36:600::/64
2001:470:36:600::/63
2001:470:36:609::/64
2001:470:36:60d::/64
2001:470:36:610::/63
2001:470:36:614::/64
2001:470:36:616::/64
2001:470:36:61d::/64
2001:470:36:626::/64
2001:470:36:631::/64
2001:470:36:626::/63
2001:470:36:632::/64
2001:470:36:634::/64
2001:470:36:63b::/64
2001:470:36:63d::/64
2001:470:36:643::/64
2001:470:36:64c::/64
2001:470:36:658::/63
2001:470:36:661::/64
2001:470:36:665::/64
2001:470:36:66b::/64
@@ -11301,6 +11333,7 @@
2001:470:4b:1bc::/64
2001:470:4b:1bf::/64
2001:470:4b:1c0::/63
2001:470:4b:1c3::/64
2001:470:4b:1c4::/62
2001:470:4b:1c8::/63
2001:470:4b:1ca::/64
@@ -11411,6 +11444,7 @@
2001:470:67:10c::/62
2001:470:67:110::/63
2001:470:67:113::/64
2001:470:67:119::/64
2001:470:67:120::/64
2001:470:67:123::/64
2001:470:67:125::/64
@@ -11497,6 +11531,7 @@
2001:470:67:254::/64
2001:470:67:258::/63
2001:470:67:25a::/64
2001:470:67:25d::/64
2001:470:67:261::/64
2001:470:67:262::/64
2001:470:67:266::/64
@@ -11511,6 +11546,7 @@
2001:470:67:27d::/64
2001:470:67:27e::/63
2001:470:67:284::/64
2001:470:67:287::/64
2001:470:67:28f::/64
2001:470:67:292::/64
2001:470:67:296::/64
@@ -11542,6 +11578,7 @@
2001:470:67:2fe::/64
2001:470:67:302::/63
2001:470:67:304::/63
2001:470:67:306::/64
2001:470:67:308::/64
2001:470:67:30a::/64
2001:470:67:312::/64
@@ -11679,9 +11716,9 @@
2001:470:6d:348::/64
2001:470:6d:40e::/64
2001:470:6d:57f::/64
2001:470:6d:597::/64
2001:470:6d:5a1::/64
2001:470:6d:5b6::/64
2001:470:6d:60a::/64
2001:470:6d:65e::/64
2001:470:6d:6c0::/64
2001:470:6d:713::/64
@@ -11809,7 +11846,6 @@
2001:470:7c:2cf::/64
2001:470:7c:2d3::/64
2001:470:7c:2d7::/64
2001:470:7c:2e2::/64
2001:470:7c:35d::/64
2001:470:7c:38d::/64
2001:470:7c:3ee::/64
@@ -11909,6 +11945,7 @@
2001:470:1f05:136::/63
2001:470:1f05:139::/64
2001:470:1f05:13b::/64
2001:470:1f05:13d::/64
2001:470:1f05:13f::/64
2001:470:1f05:140::/64
2001:470:1f05:142::/64
@@ -11921,11 +11958,14 @@
2001:470:1f05:158::/64
2001:470:1f05:15c::/63
2001:470:1f05:162::/63
2001:470:1f05:164::/64
2001:470:1f05:16d::/64
2001:470:1f05:16f::/64
2001:470:1f05:17d::/64
2001:470:1f05:17e::/64
2001:470:1f05:181::/64
2001:470:1f05:183::/64
2001:470:1f05:184::/63
2001:470:1f05:186::/64
2001:470:1f05:188::/63
2001:470:1f05:192::/63
2001:470:1f05:1a6::/64
@@ -12411,6 +12451,8 @@
2001:470:1f07:5c8::/64
2001:470:1f07:5cf::/64
2001:470:1f07:5ea::/64
2001:470:1f07:61b::/64
2001:470:1f07:620::/64
2001:470:1f07:645::/64
2001:470:1f07:654::/64
2001:470:1f07:66e::/64
@@ -12515,6 +12557,7 @@
2001:470:1f09:2ee::/64
2001:470:1f09:316::/64
2001:470:1f09:332::/64
2001:470:1f09:340::/64
2001:470:1f09:55b::/64
2001:470:1f09:5f0::/64
2001:470:1f09:678::/64
@@ -12543,6 +12586,7 @@
2001:470:1f09:cef::/64
2001:470:1f09:d2a::/64
2001:470:1f09:12e3::/64
2001:470:1f0b:11::/64
2001:470:1f0b:5e::/64
2001:470:1f0b:71::/64
2001:470:1f0b:151::/64
@@ -12580,7 +12624,6 @@
2001:470:1f0b:cf1::/64
2001:470:1f0b:dc9::/64
2001:470:1f0b:e2e::/64
2001:470:1f0b:e66::/64
2001:470:1f0b:ea7::/64
2001:470:1f0b:ec3::/64
2001:470:1f0b:ed1::/64
@@ -12588,6 +12631,7 @@
2001:470:1f0b:fcf::/64
2001:470:1f0b:1011::/64
2001:470:1f0b:1013::/64
2001:470:1f0b:1032::/64
2001:470:1f0b:10f7::/64
2001:470:1f0b:111a::/64
2001:470:1f0b:111d::/64
@@ -12668,7 +12712,6 @@
2001:470:1f0f:342::/64
2001:470:1f0f:36a::/64
2001:470:1f0f:373::/64
2001:470:1f0f:3db::/64
2001:470:1f0f:3ff::/64
2001:470:1f0f:44f::/64
2001:470:1f0f:483::/64
@@ -12730,7 +12773,6 @@
2001:470:1f0f:995::/64
2001:470:1f11:a::/64
2001:470:1f11:21::/64
2001:470:1f11:3a::/64
2001:470:1f11:61::/64
2001:470:1f11:62::/64
2001:470:1f11:6a::/64
@@ -12752,7 +12794,6 @@
2001:470:1f11:1c5::/64
2001:470:1f11:1e8::/64
2001:470:1f11:1ec::/63
2001:470:1f11:200::/64
2001:470:1f11:203::/64
2001:470:1f11:20a::/64
2001:470:1f11:241::/64
@@ -12796,7 +12837,6 @@
2001:470:1f11:3d8::/64
2001:470:1f11:3e4::/64
2001:470:1f11:3f3::/64
2001:470:1f11:3f4::/64
2001:470:1f11:3f6::/64
2001:470:1f11:3fa::/64
2001:470:1f11:3fc::/64
@@ -12814,7 +12854,9 @@
2001:470:1f11:492::/64
2001:470:1f11:494::/64
2001:470:1f11:4a2::/64
2001:470:1f11:4ac::/64
2001:470:1f11:4b1::/64
2001:470:1f11:4b3::/64
2001:470:1f11:598::/64
2001:470:1f11:62f::/64
2001:470:1f11:716::/64
@@ -12848,6 +12890,7 @@
2001:470:1f13:493::/64
2001:470:1f13:513::/64
2001:470:1f13:57f::/64
2001:470:1f13:592::/64
2001:470:1f13:611::/64
2001:470:1f13:670::/64
2001:470:1f13:6ff::/64
@@ -12926,7 +12969,6 @@
2001:470:1f17:ea::/64
2001:470:1f17:f4::/64
2001:470:1f17:f8::/64
2001:470:1f17:106::/64
2001:470:1f17:111::/64
2001:470:1f17:118::/64
2001:470:1f17:11a::/63
@@ -12983,7 +13025,6 @@
2001:470:1f19:87::/64
2001:470:1f19:89::/64
2001:470:1f19:8b::/64
2001:470:1f19:90::/64
2001:470:1f19:93::/64
2001:470:1f19:96::/64
2001:470:1f19:98::/64
@@ -13055,6 +13096,7 @@
2001:470:1f19:1e2::/63
2001:470:1f19:1e8::/63
2001:470:1f19:1f0::/64
2001:470:1f19:1f3::/64
2001:470:1f19:209::/64
2001:470:1f19:20c::/64
2001:470:1f19:220::/64
@@ -13107,6 +13149,7 @@
2001:470:1f1b:232::/64
2001:470:1f1b:2a6::/64
2001:470:1f1b:2da::/64
2001:470:1f1b:47e::/64
2001:470:1f1b:4f0::/64
2001:470:1f1b:864::/64
2001:470:1f1d:82::/64
@@ -13150,7 +13193,6 @@
2001:470:1f1d:86f::/64
2001:470:1f1d:875::/64
2001:470:1f1d:879::/64
2001:470:1f1d:882::/64
2001:470:1f1d:8d2::/64
2001:470:1f1d:922::/64
2001:470:1f1f:4::/64
@@ -13167,6 +13209,7 @@
2001:470:1f1f:8f::/64
2001:470:1f1f:98::/64
2001:470:1f1f:a1::/64
2001:470:1f1f:a3::/64
2001:470:1f1f:af::/64
2001:470:1f1f:ce::/64
2001:470:1f1f:f2::/63
@@ -13328,7 +13371,7 @@
2001:470:1f2d:1e3::/64
2001:470:1f2d:1f9::/64
2001:470:1f2d:218::/64
2001:470:1f2d:274::/64
2001:470:1f2d:278::/64
2001:470:1f2d:2ce::/64
2001:470:1f2d:3fa::/64
2001:470:1f2d:3fc::/63
@@ -13376,6 +13419,7 @@
2001:470:1f2f:e2::/64
2001:470:1f2f:f8::/63
2001:470:1f2f:fb::/64
2001:470:1f2f:fe::/64
2001:470:1f2f:106::/64
2001:470:1f2f:135::/64
2001:470:1f2f:14b::/64
@@ -13443,8 +13487,7 @@
2001:470:2858::/48
2001:470:2889::/48
2001:470:2898::/48
2001:470:289a::/48
2001:470:289e::/48
2001:470:289e::/47
2001:470:28a5::/48
2001:470:28b4::/48
2001:470:292d::/48
@@ -13534,6 +13577,7 @@
2001:470:401e::/48
2001:470:402f::/48
2001:470:4051::/48
2001:470:4088::/48
2001:470:408e::/48
2001:470:409e::/47
2001:470:40a0::/46
@@ -13695,7 +13739,6 @@
2001:470:596b::/48
2001:470:59f8::/48
2001:470:59fa::/48
2001:470:5a3f::/48
2001:470:6103::/48
2001:470:6130::/48
2001:470:6235::/48
@@ -13717,7 +13760,6 @@
2001:470:7373::/48
2001:470:7414::/48
2001:470:749b::/48
2001:470:74e5::/48
2001:470:7511::/48
2001:470:7536::/48
2001:470:75d9::/48
@@ -13764,6 +13806,8 @@
2001:470:808b::/48
2001:470:808e::/48
2001:470:8090::/48
2001:470:809c::/47
2001:470:809e::/48
2001:470:80a0::/48
2001:470:80a4::/48
2001:470:80a6::/48
@@ -13849,7 +13893,6 @@
2001:470:826f::/48
2001:470:8271::/48
2001:470:8272::/47
2001:470:8277::/48
2001:470:827a::/48
2001:470:827e::/47
2001:470:8284::/48
@@ -14004,7 +14047,6 @@
2001:470:bbd1::/48
2001:470:bc89::/48
2001:470:c011::/48
2001:470:c029::/48
2001:470:c02a::/48
2001:470:c02d::/48
2001:470:c034::/48
@@ -14023,7 +14065,6 @@
2001:470:c18a::/48
2001:470:c18c::/48
2001:470:c193::/48
2001:470:c195::/48
2001:470:c1b8::/48
2001:470:c337::/48
2001:470:c888::/48
@@ -14097,7 +14138,6 @@
2001:470:e972::/48
2001:470:e987::/48
2001:470:e9a6::/48
2001:470:e9a8::/48
2001:470:e9cf::/48
2001:470:e9d3::/48
2001:470:e9ee::/48
@@ -14152,7 +14192,6 @@
2001:470:edb1::/48
2001:470:edb7::/48
2001:470:edc4::/48
2001:470:edc6::/48
2001:470:edcc::/48
2001:470:eddb::/48
2001:470:eddd::/48
@@ -14169,7 +14208,9 @@
2001:470:ee2d::/48
2001:470:ee51::/48
2001:470:ee6b::/48
2001:470:ee6f::/48
2001:470:ee7c::/48
2001:470:ee80::/48
2001:470:eea3::/48
2001:470:eea4::/48
2001:470:eea6::/47
@@ -14205,7 +14246,6 @@
2001:470:f047::/48
2001:470:f049::/48
2001:470:f04d::/48
2001:470:f04e::/48
2001:470:f052::/48
2001:470:f05b::/48
2001:470:f05c::/48
@@ -14281,6 +14321,7 @@
2001:470:f156::/48
2001:470:f158::/48
2001:470:f15d::/48
2001:470:f15f::/48
2001:470:f162::/48
2001:470:f164::/48
2001:470:f166::/48
@@ -14344,7 +14385,11 @@
2001:470:f23c::/48
2001:470:f23f::/48
2001:470:f249::/48
2001:470:f24a::/48
2001:470:f24f::/48
2001:470:f250::/48
2001:470:f253::/48
2001:470:f259::/48
2001:470:f267::/48
2001:470:f26e::/48
2001:470:f270::/48
@@ -14700,7 +14745,7 @@
2001:470:fab9::/48
2001:470:fabe::/48
2001:470:fac0::/48
2001:470:fac4::/48
2001:470:fac4::/47
2001:470:fac6::/48
2001:470:fac8::/48
2001:470:facc::/46
@@ -14720,11 +14765,15 @@
2001:470:fb08::/48
2001:470:fb0c::/48
2001:470:fb0e::/48
2001:470:fb10::/47
2001:470:fb12::/48
2001:470:fb15::/48
2001:470:fb17::/48
2001:470:fb18::/48
2001:470:fb1b::/48
2001:470:fb1a::/47
2001:470:fb1e::/48
2001:470:fb22::/48
2001:470:fb20::/46
2001:470:fb28::/48
2001:470:fb32::/48
2001:470:fb46::/48
2001:470:fb5b::/48
@@ -14831,7 +14880,22 @@
2001:470:fd8d::/48
2001:470:fd93::/48
2001:470:fd95::/48
2001:470:fd98::/48
2001:470:fd98::/57
2001:470:fd98:80::/58
2001:470:fd98:c0::/59
2001:470:fd98:e0::/63
2001:470:fd98:e2::/64
2001:470:fd98:e4::/62
2001:470:fd98:e8::/61
2001:470:fd98:f0::/60
2001:470:fd98:100::/56
2001:470:fd98:200::/55
2001:470:fd98:400::/54
2001:470:fd98:800::/53
2001:470:fd98:1000::/52
2001:470:fd98:2000::/51
2001:470:fd98:4000::/50
2001:470:fd98:8000::/49
2001:470:fd9d::/48
2001:470:fda6::/48
2001:470:fdac::/48
@@ -14941,6 +15005,7 @@
2001:df4:3d80::/48
2001:df4:4b80::/48
2001:df4:4d80::/48
2001:df4:a1c0::/48
2001:df4:a680::/48
2001:df4:a980::/48
2001:df4:c180::/48
@@ -15210,7 +15275,8 @@
2400:9a00::/32
2400:9ca0::/32
2400:9e00::/32
2400:9e20:caf9::/48
2400:9e20:caf7::/48
2400:9e20:caf8::/47
2400:a040::/32
2400:a320::/32
2400:a380::/32
@@ -15355,7 +15421,18 @@
2401:e00::/32
2401:1000::/32
2401:1160::/32
2401:11a0::/32
2401:11a0::/40
2401:11a0:100::/42
2401:11a0:140::/44
2401:11a0:160::/43
2401:11a0:180::/41
2401:11a0:200::/39
2401:11a0:400::/38
2401:11a0:800::/37
2401:11a0:1000::/36
2401:11a0:2000::/35
2401:11a0:4000::/34
2401:11a0:8000::/33
2401:11c0::/32
2401:1200::/32
2401:12c0::/32
@@ -15580,6 +15657,8 @@
2401:d420::/32
2401:d780::/32
2401:d7e0::/32
2401:d8e0::/32
2401:d920::/28
2401:da00::/32
2401:de00::/32
2401:e080::/32
@@ -16970,7 +17049,7 @@
2406:840:e340::/42
2406:840:e380::/41
2406:840:e400::/40
2406:840:e500::/47
2406:840:e501::/48
2406:840:e510::/44
2406:840:e520::/43
2406:840:e540::/42
@@ -17497,7 +17576,7 @@
2600:70ff:b839::/48
2600:70ff:b83b::/48
2600:70ff:b84a::/48
2600:70ff:b84e::/48
2600:70ff:b84e::/47
2600:70ff:b864::/48
2600:70ff:b89b::/48
2600:70ff:b8a8::/48
@@ -17577,9 +17656,10 @@
2600:70ff:ea0a::/47
2600:70ff:f141::/48
2600:70ff:f807::/48
2600:70ff:f80c::/47
2600:70ff:f80d::/48
2600:70ff:f815::/48
2600:70ff:f84b::/48
2600:70ff:f852::/48
2600:70ff:f884::/48
2600:70ff:f892::/48
2600:70ff:f8a9::/48
@@ -17634,7 +17714,7 @@
2600:70ff:f98b::/48
2600:70ff:f98e::/48
2600:70ff:fa41::/48
2601:1d08:4000::/48
2601:1d08:4000::/44
2602:2a4:ff::/48
2602:2a9:d10::/44
2602:2e0:ff::/48
@@ -18024,7 +18104,6 @@
2a04:4e41:27:1100::/56
2a04:4e41:29:1::/64
2a04:4e41:29:1100::/56
2a04:4e41:30::/64
2a04:4e41:30:1000::/56
2a04:4e41:64:1::/64
2a04:4e41:64:1100::/56
@@ -18071,7 +18150,10 @@
2a05:dfc1:5efb:142::/63
2a05:e580:700::/40
2a06:1281:8000::/36
2a06:1281:b000::/36
2a06:1281:b100::/40
2a06:1281:b200::/39
2a06:1281:b400::/38
2a06:1281:b800::/39
2a06:3601::/32
2a06:3602::/31
2a06:9f81:4100::/48
@@ -18082,8 +18164,8 @@
2a06:9f81:5100::/40
2a06:9f81:5400::/40
2a06:9f81:6100::/40
2a06:9f81:644e::/48
2a06:9f81:645e::/48
2a06:9f81:6444::/48
2a06:9f81:6455::/48
2a06:9f81:6488::/48
2a06:9f81:64a1::/48
2a06:a005:260::/43
@@ -18113,6 +18195,7 @@
2a09:54c6:c000::/39
2a09:54c6:c300::/40
2a09:54c6:c400::/38
2a09:b280:ff81::/48
2a09:b280:ff83::/48
2a09:b280:ff84::/47
2a09:bac0:1000:5dc::/64
@@ -19173,15 +19256,12 @@
2a0a:2845:c000::/34
2a0a:2846::/31
2a0a:6040:3410::/48
2a0a:6040:3430::/48
2a0a:6040:34ff::/48
2a0a:6040:d740::/48
2a0a:6040:ec00::/40
2a0a:6042:4100::/40
2a0a:6044:6600::/39
2a0a:6044:b800::/40
2a0a:8f40:9::/48
2a0b:b87:ffb5::/48
2a0b:2542::/48
2a0b:4340:550::/44
2a0b:4e07:b8::/47
@@ -19215,12 +19295,6 @@
2a0c:9a40:95bf:7fdf::/64
2a0c:9a40:95bf:7fe0::/59
2a0c:9a40:9e00::/43
2a0c:9e06:62::/48
2a0c:9e06:75::/48
2a0c:9e06:76::/47
2a0c:9e06:79::/48
2a0c:9e06:133::/48
2a0c:9e06:153::/48
2a0c:b641:571::/48
2a0c:b641:d40::/44
2a0d:6c2:1000::/40
@@ -19276,7 +19350,6 @@
2a0e:aa06:525::/48
2a0e:aa06:541::/48
2a0e:aa07:e01b::/48
2a0e:aa07:e021::/48
2a0e:aa07:e024::/47
2a0e:aa07:e030::/48
2a0e:aa07:e035::/48
@@ -19314,7 +19387,6 @@
2a0e:b107:1a34::/48
2a0e:b107:2440::/44
2a0e:b107:2715::/48
2a0e:ec01:7000::/38
2a0e:ec05:4600::/39
2a0e:ec05:4800::/41
2a0e:ec05:79c0::/42
@@ -19324,10 +19396,12 @@
2a0f:7803:dd00::/42
2a0f:7803:e300::/41
2a0f:7803:f680::/43
2a0f:7803:f6a0::/44
2a0f:7803:f7a0::/44
2a0f:7803:f7e0::/43
2a0f:7803:f800::/43
2a0f:7803:f840::/44
2a0f:7803:f970::/44
2a0f:7803:fa21::/48
2a0f:7803:fa22::/47
2a0f:7803:fa24::/46
@@ -19348,8 +19422,7 @@
2a0f:7803:ff02:8000::/50
2a0f:7803:ff10:2000::/51
2a0f:7804:da00::/40
2a0f:7804:f650::/44
2a0f:7804:f9f0::/44
2a0f:7807::/32
2a0f:85c1:816::/48
2a0f:85c1:89a::/48
2a0f:9400:7700::/48
@@ -19359,7 +19432,6 @@
2a10:9007:5:3::/64
2a10:c5c1:f016::/48
2a10:cc40:190::/48
2a11:6d40::/29
2a11:d240::/29
2a12:3fc2:1200::/44
2a12:3fc2:df11::/48
@@ -19412,13 +19484,12 @@
2a13:a5c7:1604::/48
2a13:a5c7:1801::/48
2a13:a5c7:1803::/48
2a13:a5c7:1804::/47
2a13:a5c7:1804::/46
2a13:a5c7:1888::/48
2a13:a5c7:2100::/48
2a13:a5c7:2102::/47
2a13:a5c7:2109::/48
2a13:a5c7:2110::/47
2a13:a5c7:2114::/48
2a13:a5c7:2110::/48
2a13:a5c7:2116::/47
2a13:a5c7:2118::/47
2a13:a5c7:2200::/39
@@ -19436,11 +19507,13 @@
2a14:4b00:5c00::/38
2a14:4c41::/32
2a14:67c1:20::/44
2a14:67c1:510::/44
2a14:67c1:610::/44
2a14:67c1:1000::/38
2a14:7580:6000::/36
2a14:7580:9200::/40
2a14:7580:c000::/35
2a14:7580:fa00::/40
2a14:7580:fe00::/40
2a14:7581:b20::/48
2a14:7581:b25::/48
2a14:7581:b26::/48

View File

@@ -27,16 +27,11 @@ def parse_args():
def convert_cidr(cidr):
if '/' in cidr:
network = ipaddress.ip_network(cidr.strip(), strict=False)
network_address = network.network_address
prefixlen = network.prefixlen
network_address = int(network.network_address) >> (network.max_prefixlen - network.prefixlen)
else:
network = ipaddress.ip_address(cidr.strip())
network_address = network
prefixlen = network.max_prefixlen
if network.version == 4:
return hex(int(network_address))[2:] + '/' + str(prefixlen)
else:
return network.compressed
return hex(int(network_address))[2:]
def generate_cnip_cidrs():
""" 从文件中读取CIDR地址 """

68
gfw.pac
View File

File diff suppressed because one or more lines are too long

View File

@@ -10,35 +10,45 @@ var localTlds = __LOCAL_TLDS__;
var cidrs = __CIDRS__;
var hasOwnProperty = Object.hasOwnProperty;
function isIpAddress(ip) {
return /^\d{1,3}(\.\d{1,3}){3}$/.test(ip) || /^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$/.test(ip);
}
function RadixTree() {
this.root = {};
this.root = new Map();
}
RadixTree.prototype.insert = function(string) {
var node = this.root;
for (var i = 0; i < string.length; i++) {
var char = string[i];
if (!node[char]) {
node[char] = {};
if (!node.has(char)) {
node.set(char, new Map());
}
node = node[char];
node = node.get(char);
}
};
RadixTree.prototype.to_list = function() {
return this.root;
};
RadixTree.prototype.search = function(string) {
var currentNode = this.root;
var isLastNode = false;
for (var i=0; i < string.length; i++) {
var char = string[i];
if (currentNode.has(char)) {
currentNode = currentNode.get(char);
isLastNode = currentNode.size === 0;
} else {
break;
}
}
return isLastNode;
}
function ipToBinary(ip) {
var bin = ''
// Check if it's IPv4
if (/^\d{1,3}(\.\d{1,3}){3}$/.test(ip)) {
return ip.split('.').map(function(num) {
bin = ip.split('.').map(function(num) {
return ("00000000" + parseInt(num, 10).toString(2)).slice(-8);
}).join('');
} else if (/^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$/.test(ip)) {
@@ -54,25 +64,11 @@ function ipToBinary(ip) {
var fullAddress = left.concat(Array(zeroGroups + 1).join('0').split('')).concat(right);
// Convert each group to binary and pad to 16 bits
return fullAddress.map(function(group) {
bin = fullAddress.map(function(group) {
return ("0000000000000000" + parseInt(group || '0', 16).toString(2)).slice(-16);
}).join('');
}
}
function searchRadixTree(bits) {
var currentNode = radixTree;
var isLastNode = false;
for (var i=0; i<bits.length; i++) {
var char = bits[i];
if (currentNode[char]) {
currentNode = currentNode[char];
isLastNode = Object.keys(currentNode).length === 0;
} else {
break;
}
}
return isLastNode;
return bin.replace(/^0+/, '');
}
function isInDirectDomain(host) {
@@ -142,7 +138,7 @@ function FindProxyForURL(url, host) {
} else if (isPrivateIp(ip)) {
debug('域名解析后命中私有 IP 地址', host, ip);
return direct;
} else if (searchRadixTree(ipToBinary(ip))) {
} else if (radixTree.search(ipToBinary(ip))) {
debug('匹配到直连IP', host, ip);
return direct;
}
@@ -152,7 +148,7 @@ function FindProxyForURL(url, host) {
}
var allowAlert = true
function debug(msg, host, ip) {
function debug(msg, host='', ip='') {
if (!allowAlert) {
return
}
@@ -166,19 +162,11 @@ function debug(msg, host, ip) {
var radixTree = new RadixTree();
(function () {
var startTime = new Date().getMilliseconds();
debug('开始生成 Radix Tree', 'PAC文件载入开始', startTime.toString());
debug('开始生成 Radix Tree', 'PAC文件载入开始');
for (let i=0; i<cidrs.length; i++) {
var cidr = cidrs[i];
var [ip, prefixLen] = cidr.split('/');
if (!cidr.includes(':')) {
var ip = ip.match(/.{1,2}/g).map(function(byte) {
return parseInt(byte, 16);
}).join('.');
}
var bits = ipToBinary(ip).slice(0, prefixLen);
var prefix = cidrs[i];
var bits = (parseInt(prefix, 16)).toString(2);
radixTree.insert(bits);
}
radixTree = radixTree.to_list();
debug('Radix Tree 已生成', 'PAC文件载入完毕', cidrs.length.toString()+'个CIDR条目');
})();