Browse Source

Fix: enhance check for building Telegram CIDR

SukkaW 3 years ago
parent
commit
b8a394d27a
1 changed files with 9 additions and 3 deletions
  1. 9 3
      Build/build-telegram-cidr.js

+ 9 - 3
Build/build-telegram-cidr.js

@@ -1,6 +1,7 @@
 const { fetch } = require('undici');
 const { fetch } = require('undici');
 const fs = require('fs');
 const fs = require('fs');
 const path = require('path');
 const path = require('path');
+const { isIPv4, isIPv6 } = require('net');
 
 
 (async () => {
 (async () => {
   const resp = await fetch('https://core.telegram.org/resources/cidr.txt');
   const resp = await fetch('https://core.telegram.org/resources/cidr.txt');
@@ -15,9 +16,14 @@ const path = require('path');
     '# Telegram CIDR (https://core.telegram.org/resources/cidr.txt)' + '\n' +
     '# Telegram CIDR (https://core.telegram.org/resources/cidr.txt)' + '\n' +
     '# Last Updated: ' + lastModified.toISOString() + '\n' +
     '# Last Updated: ' + lastModified.toISOString() + '\n' +
     res.map(ip => {
     res.map(ip => {
-      return ip.includes(':')
-        ? `IP-CIDR6,${ip},no-resolve`
-        : `IP-CIDR,${ip},no-resolve`;
+      const [subnet, range] = ip.split('/');
+      if (isIPv4(subnet)) {
+        return `IP-CIDR,${ip},no-resolve`;
+      }
+      if (isIPv6(subnet)) {
+        return `IP-CIDR6,${ip},no-resolve`;
+      }
+      return '';
     }).join('\n') + '\n',
     }).join('\n') + '\n',
     'utf-8'
     'utf-8'
   );
   );