From 782afe3cb076e5ef6dbfe2a553aa726506d98fd7 Mon Sep 17 00:00:00 2001 From: iBug <7273074+iBug@users.noreply.github.com> Date: Mon, 11 Feb 2019 13:09:04 +0800 Subject: [PATCH] Update IP range list and re-generate PAC --- bypass-lan-and-china.pac | 124 ++++++++++++++++++++++++++++----------- ip_ranges.txt | 90 ++++++++++++++++++++++++---- 2 files changed, 168 insertions(+), 46 deletions(-) diff --git a/bypass-lan-and-china.pac b/bypass-lan-and-china.pac index 9ca0703..e598809 100644 --- a/bypass-lan-and-china.pac +++ b/bypass-lan-and-china.pac @@ -1,3 +1,5 @@ +// Author: iBug + function belongsToSubnet(host, list) { var ip = host.split("."); ip = 0x1000000 * Number(ip[0]) + 0x10000 * Number(ip[1]) + @@ -18,34 +20,25 @@ function belongsToSubnet(host, list) { // Match var masked = ip & list[x][1]; - return (masked >>> 0) == (list[x][0] >>> 0); -} - -function isChina(host) { - return belongsToSubnet(host, CHINA); -} - -function isLan(host) { - return belongsToSubnet(host, LAN); + return (masked ^ list[x][0]) == 0; } var proxy = "__PROXY__"; var direct = "DIRECT"; - function FindProxyForURL(url, host) { var remote = dnsResolve(host); - if (isChina(remote) || isLan(remote)) { + if (belongsToSubnet(remote, WHITELIST)) { return direct; } return proxy; } +// Format: [Hex IP, mask] +// e.g. 1.0.1.0/24 = [0x80008000, 0xFFFFFF00] // Source: http://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone -var CHINA = [ - // Format: [Hex IP, mask] - // e.g. 1.0.1.0/24 = [0x80008000, 0xFFFFFF00] +var WHITELIST = [ [0x01000100, 0xFFFFFF00], [0x01000200, 0xFFFFFE00], [0x01000800, 0xFFFFF800], @@ -93,6 +86,7 @@ var CHINA = [ [0x01C00000, 0xFFF80000], [0x01CA0000, 0xFFFE0000], [0x01CC0000, 0xFFFC0000], + [0x0A000000, 0xFF000000], [0x0E000000, 0xFFFFF800], [0x0E000C00, 0xFFFFFC00], [0x0E010000, 0xFFFFFC00], @@ -145,7 +139,6 @@ var CHINA = [ [0x1B742C00, 0xFFFFFC00], [0x1B794800, 0xFFFFF800], [0x1B797800, 0xFFFFF800], - [0x1B7BE800, 0xFFFFFC00], [0x1B800000, 0xFFFE0000], [0x1B83DC00, 0xFFFFFC00], [0x1B900000, 0xFFFF0000], @@ -294,7 +287,6 @@ var CHINA = [ [0x2BE0C800, 0xFFFFF800], [0x2BE0D000, 0xFFFFF800], [0x2BE0D800, 0xFFFFFC00], - [0x2BE0E000, 0xFFFFFC00], [0x2BE0F000, 0xFFFFFC00], [0x2BE14C00, 0xFFFFFC00], [0x2BE15400, 0xFFFFFC00], @@ -481,7 +473,7 @@ var CHINA = [ [0x2BF8E400, 0xFFFFFC00], [0x2BF8E800, 0xFFFFFC00], [0x2BF8F400, 0xFFFFFC00], - [0x2BF90000, 0xFFFFF800], + [0x2BF90400, 0xFFFFFC00], [0x2BF90800, 0xFFFFFC00], [0x2BF91800, 0xFFFFFC00], [0x2BF97800, 0xFFFFFC00], @@ -1068,7 +1060,6 @@ var CHINA = [ [0x670CB800, 0xFFFFFC00], [0x670CE800, 0xFFFFFC00], [0x670D0C00, 0xFFFFFC00], - [0x670D4800, 0xFFFFFE00], [0x670D7C00, 0xFFFFFC00], [0x670D9000, 0xFFFFFC00], [0x670DC400, 0xFFFFFC00], @@ -1593,7 +1584,6 @@ var CHINA = [ [0x674C4800, 0xFFFFFC00], [0x674C5400, 0xFFFFFC00], [0x674C5C00, 0xFFFFFC00], - [0x674C6800, 0xFFFFFC00], [0x674CD800, 0xFFFFF800], [0x674CE000, 0xFFFFFC00], [0x674D1C00, 0xFFFFFC00], @@ -2053,6 +2043,71 @@ var CHINA = [ [0x6778E000, 0xFFFFFC00], [0x67793400, 0xFFFFFC00], [0x67795C00, 0xFFFFFC00], + [0x6779A000, 0xFFFFF800], + [0x6779FA00, 0xFFFFFF00], + [0x6779FC00, 0xFFFFFC00], + [0x677A3000, 0xFFFFFC00], + [0x677AB000, 0xFFFFFC00], + [0x677AC000, 0xFFFFFC00], + [0x677AF000, 0xFFFFFC00], + [0x677B0400, 0xFFFFFC00], + [0x677B3800, 0xFFFFFC00], + [0x677B5800, 0xFFFFF800], + [0x677B7400, 0xFFFFFC00], + [0x677BA000, 0xFFFFFC00], + [0x677BB000, 0xFFFFFC00], + [0x677BC800, 0xFFFFF800], + [0x677BD000, 0xFFFFF800], + [0x677C1800, 0xFFFFFC00], + [0x677C3000, 0xFFFFFC00], + [0x677C4000, 0xFFFFFC00], + [0x677CD400, 0xFFFFFC00], + [0x677CD800, 0xFFFFFC00], + [0x677D1400, 0xFFFFFC00], + [0x677D2C00, 0xFFFFFC00], + [0x677D8400, 0xFFFFFC00], + [0x677DA400, 0xFFFFFC00], + [0x677DC400, 0xFFFFFC00], + [0x677DEC00, 0xFFFFFC00], + [0x677DF800, 0xFFFFFC00], + [0x677E0000, 0xFFFFFC00], + [0x677E1000, 0xFFFFFC00], + [0x677E2C00, 0xFFFFFC00], + [0x677E6400, 0xFFFFFC00], + [0x677E7C00, 0xFFFFFC00], + [0x677E8000, 0xFFFFF800], + [0x677ED000, 0xFFFFFC00], + [0x677EF100, 0xFFFFFF00], + [0x67813400, 0xFFFFFC00], + [0x67819400, 0xFFFFFC00], + [0x67828400, 0xFFFFFC00], + [0x67829800, 0xFFFFFF00], + [0x6782A000, 0xFFFFFC00], + [0x6782E400, 0xFFFFFC00], + [0x67831400, 0xFFFFFC00], + [0x67832400, 0xFFFFFC00], + [0x67839800, 0xFFFFFC00], + [0x6783A800, 0xFFFFFC00], + [0x6783B000, 0xFFFFFC00], + [0x6783E000, 0xFFFFF800], + [0x6783F000, 0xFFFFFC00], + [0x67843C00, 0xFFFFFC00], + [0x67844000, 0xFFFFF000], + [0x67845000, 0xFFFFFC00], + [0x67846800, 0xFFFFF800], + [0x67847000, 0xFFFFF800], + [0x67847800, 0xFFFFFC00], + [0x6784A000, 0xFFFFF800], + [0x6784BC00, 0xFFFFFC00], + [0x6784D000, 0xFFFFF800], + [0x6784EA00, 0xFFFFFE00], + [0x67850C00, 0xFFFFFC00], + [0x67852800, 0xFFFFFC00], + [0x67858000, 0xFFFFFC00], + [0x67858800, 0xFFFFFC00], + [0x6785B000, 0xFFFFFC00], + [0x6785E800, 0xFFFFFC00], + [0x67860C00, 0xFFFFFF00], [0x67C00000, 0xFFFFE000], [0x67C03000, 0xFFFFF800], [0x67C03800, 0xFFFFFC00], @@ -2842,9 +2897,13 @@ var CHINA = [ [0x74C70000, 0xFFFF8000], [0x74C78000, 0xFFFFE000], [0x74CC0000, 0xFFFF8000], + [0x74CC8400, 0xFFFFFC00], + [0x74CCA800, 0xFFFFFC00], + [0x74CCD800, 0xFFFFFC00], + [0x74CCE800, 0xFFFFF800], + [0x74CCF400, 0xFFFFFC00], [0x74CD0000, 0xFFFF0000], [0x74CE5C00, 0xFFFFFC00], - [0x74CE6400, 0xFFFFFC00], [0x74CEB000, 0xFFFFFC00], [0x74CF0000, 0xFFFF0000], [0x74D00000, 0xFFFC0000], @@ -3217,10 +3276,12 @@ var CHINA = [ [0x7DD70000, 0xFFFFC000], [0x7DD80000, 0xFFF80000], [0x7DFE8000, 0xFFFF8000], + [0x7F000000, 0xFFFF0000], [0x806C0000, 0xFFFF0000], [0x811C0000, 0xFFFF0000], [0x81CC0000, 0xFFFF0000], [0x81D30000, 0xFFFF0000], + [0x81FE0000, 0xFFFF0000], [0x84E80000, 0xFFFF0000], [0x86AF0000, 0xFFFF0000], [0x893B3B00, 0xFFFFFF00], @@ -3300,6 +3361,7 @@ var CHINA = [ [0x9681D800, 0xFFFFFC00], [0x9681FC00, 0xFFFFFC00], [0x968A0000, 0xFFFE0000], + [0x969E0000, 0xFFFF0000], [0x96DF0000, 0xFFFF0000], [0x96F20000, 0xFFFFF800], [0x96F20800, 0xFFFFFC00], @@ -3406,6 +3468,7 @@ var CHINA = [ [0xAB680000, 0xFFF80000], [0xAB700000, 0xFFF00000], [0xABD00000, 0xFFF00000], + [0xAC100000, 0xFFF00000], [0xAC51C000, 0xFFFFC000], [0xAF000000, 0xFFF00000], [0xAF100000, 0xFFF80000], @@ -3506,7 +3569,7 @@ var CHINA = [ [0xB6EF0000, 0xFFFFE000], [0xB6F00000, 0xFFF80000], [0xB6FE0000, 0xFFFF0000], - [0xB6FF2400, 0xFFFFFC00], + [0xB6FF2000, 0xFFFFF800], [0xB6FF3C00, 0xFFFFFC00], [0xB7000000, 0xFFC00000], [0xB7400000, 0xFFF80000], @@ -3539,6 +3602,7 @@ var CHINA = [ [0xC08CC000, 0xFFFFF000], [0xC08CD000, 0xFFFFF800], [0xC0908000, 0xFFFF8000], + [0xC0A80000, 0xFFFF0000], [0xC1700000, 0xFFFF0000], [0xC34E5200, 0xFFFFFE00], [0xC6AF6400, 0xFFFFFC00], @@ -3546,6 +3610,7 @@ var CHINA = [ [0xCA007A00, 0xFFFFFE00], [0xCA00B000, 0xFFFFFC00], [0xCA038000, 0xFFFFFE00], + [0xCA038600, 0xFFFFFF00], [0xCA048000, 0xFFFFE000], [0xCA04FC00, 0xFFFFFC00], [0xCA05D000, 0xFFFFF800], @@ -3728,6 +3793,7 @@ var CHINA = [ [0xCA342200, 0xFFFFFF00], [0xCA342F00, 0xFFFFFF00], [0xCA348F00, 0xFFFFFF00], + [0xCA349000, 0xFFFFFF00], [0xCA358C00, 0xFFFFFF00], [0xCA358F00, 0xFFFFFF00], [0xCA39C000, 0xFFFFF000], @@ -3735,6 +3801,7 @@ var CHINA = [ [0xCA39D800, 0xFFFFFC00], [0xCA39F000, 0xFFFFF000], [0xCA3A0000, 0xFFFFFF00], + [0xCA3A6500, 0xFFFFFF00], [0xCA3A6800, 0xFFFFFC00], [0xCA3A7000, 0xFFFFFC00], [0xCA3B0000, 0xFFFFFE00], @@ -3829,6 +3896,7 @@ var CHINA = [ [0xCA5CFC00, 0xFFFFFC00], [0xCA5D0000, 0xFFFFFC00], [0xCA5DFC00, 0xFFFFFC00], + [0xCA5E4400, 0xFFFFFF00], [0xCA5E4A00, 0xFFFFFF00], [0xCA5E5100, 0xFFFFFF00], [0xCA5E5C00, 0xFFFFFC00], @@ -4092,7 +4160,6 @@ var CHINA = [ [0xCB080000, 0xFFFFFF00], [0xCB080800, 0xFFFFFF00], [0xCB081700, 0xFFFFFF00], - [0xCB081800, 0xFFFFF800], [0xCB084600, 0xFFFFFF00], [0xCB085200, 0xFFFFFF00], [0xCB085600, 0xFFFFFE00], @@ -4156,7 +4223,6 @@ var CHINA = [ [0xCB0C4200, 0xFFFFFF00], [0xCB0C4600, 0xFFFFFE00], [0xCB0C5700, 0xFFFFFF00], - [0xCB0C5800, 0xFFFFF800], [0xCB0C6400, 0xFFFFFE00], [0xCB0C6700, 0xFFFFFF00], [0xCB0C7200, 0xFFFFFF00], @@ -4164,7 +4230,6 @@ var CHINA = [ [0xCB0C8200, 0xFFFFFF00], [0xCB0C8900, 0xFFFFFF00], [0xCB0CC400, 0xFFFFFC00], - [0xCB0CC800, 0xFFFFF800], [0xCB0CD300, 0xFFFFFF00], [0xCB0CDB00, 0xFFFFFF00], [0xCB0CE200, 0xFFFFFF00], @@ -4172,7 +4237,6 @@ var CHINA = [ [0xCB0D1200, 0xFFFFFF00], [0xCB0D1800, 0xFFFFFF00], [0xCB0D2C00, 0xFFFFFE00], - [0xCB0D5000, 0xFFFFF800], [0xCB0D5800, 0xFFFFFE00], [0xCB0D5C00, 0xFFFFFC00], [0xCB0DAD00, 0xFFFFFF00], @@ -4188,7 +4252,6 @@ var CHINA = [ [0xCB0E7200, 0xFFFFFE00], [0xCB0E7600, 0xFFFFFF00], [0xCB0EA200, 0xFFFFFF00], - [0xCB0EB800, 0xFFFFF800], [0xCB0EC000, 0xFFFFFF00], [0xCB0EC200, 0xFFFFFE00], [0xCB0ED600, 0xFFFFFF00], @@ -4800,6 +4863,7 @@ var CHINA = [ [0xCB56FA00, 0xFFFFFF00], [0xCB56FE00, 0xFFFFFE00], [0xCB582000, 0xFFFFE000], + [0xCB586400, 0xFFFFFC00], [0xCB58C000, 0xFFFFE000], [0xCB590000, 0xFFFFFC00], [0xCB590800, 0xFFFFF800], @@ -5099,11 +5163,3 @@ var CHINA = [ [0xDFFFEC00, 0xFFFFFC00], [0xDFFFFC00, 0xFFFFFE00] ]; - -var LAN = [ - [0x0A000000, 0xFF000000], - [0x7F000000, 0xFFFFFF00], - [0xA9FE0000, 0xFFFF0000], - [0xAC100000, 0xFFF00000], - [0xC0A80000, 0xFFFF0000] -]; diff --git a/ip_ranges.txt b/ip_ranges.txt index 7a50502..9593259 100644 --- a/ip_ranges.txt +++ b/ip_ranges.txt @@ -97,7 +97,6 @@ 27.116.44.0/22 27.121.72.0/21 27.121.120.0/21 -27.123.232.0/22 27.128.0.0/15 27.131.220.0/22 27.144.0.0/16 @@ -246,7 +245,6 @@ 43.224.200.0/21 43.224.208.0/21 43.224.216.0/22 -43.224.224.0/22 43.224.240.0/22 43.225.76.0/22 43.225.84.0/22 @@ -433,7 +431,7 @@ 43.248.228.0/22 43.248.232.0/22 43.248.244.0/22 -43.249.0.0/21 +43.249.4.0/22 43.249.8.0/22 43.249.24.0/22 43.249.120.0/22 @@ -1020,7 +1018,6 @@ 103.12.184.0/22 103.12.232.0/22 103.13.12.0/22 -103.13.72.0/23 103.13.124.0/22 103.13.144.0/22 103.13.196.0/22 @@ -1545,7 +1542,6 @@ 103.76.72.0/22 103.76.84.0/22 103.76.92.0/22 -103.76.104.0/22 103.76.216.0/21 103.76.224.0/22 103.77.28.0/22 @@ -2005,6 +2001,71 @@ 103.120.224.0/22 103.121.52.0/22 103.121.92.0/22 +103.121.160.0/21 +103.121.250.0/24 +103.121.252.0/22 +103.122.48.0/22 +103.122.176.0/22 +103.122.192.0/22 +103.122.240.0/22 +103.123.4.0/22 +103.123.56.0/22 +103.123.88.0/21 +103.123.116.0/22 +103.123.160.0/22 +103.123.176.0/22 +103.123.200.0/21 +103.123.208.0/21 +103.124.24.0/22 +103.124.48.0/22 +103.124.64.0/22 +103.124.212.0/22 +103.124.216.0/22 +103.125.20.0/22 +103.125.44.0/22 +103.125.132.0/22 +103.125.164.0/22 +103.125.196.0/22 +103.125.236.0/22 +103.125.248.0/22 +103.126.0.0/22 +103.126.16.0/22 +103.126.44.0/22 +103.126.100.0/22 +103.126.124.0/22 +103.126.128.0/21 +103.126.208.0/22 +103.126.241.0/24 +103.129.52.0/22 +103.129.148.0/22 +103.130.132.0/22 +103.130.152.0/24 +103.130.160.0/22 +103.130.228.0/22 +103.131.20.0/22 +103.131.36.0/22 +103.131.152.0/22 +103.131.168.0/22 +103.131.176.0/22 +103.131.224.0/21 +103.131.240.0/22 +103.132.60.0/22 +103.132.64.0/20 +103.132.80.0/22 +103.132.104.0/21 +103.132.112.0/21 +103.132.120.0/22 +103.132.160.0/21 +103.132.188.0/22 +103.132.208.0/21 +103.132.234.0/23 +103.133.12.0/22 +103.133.40.0/22 +103.133.128.0/22 +103.133.136.0/22 +103.133.176.0/22 +103.133.232.0/22 +103.134.12.0/24 103.192.0.0/19 103.192.48.0/21 103.192.56.0/22 @@ -2794,9 +2855,13 @@ 116.199.0.0/17 116.199.128.0/19 116.204.0.0/17 +116.204.132.0/22 +116.204.168.0/22 +116.204.216.0/22 +116.204.232.0/21 +116.204.244.0/22 116.205.0.0/16 116.206.92.0/22 -116.206.100.0/22 116.206.176.0/22 116.207.0.0/16 116.208.0.0/14 @@ -3252,6 +3317,7 @@ 150.129.216.0/22 150.129.252.0/22 150.138.0.0/15 +150.158.0.0/16 150.223.0.0/16 150.242.0.0/21 150.242.8.0/22 @@ -3458,7 +3524,7 @@ 182.239.0.0/19 182.240.0.0/13 182.254.0.0/16 -182.255.36.0/22 +182.255.32.0/21 182.255.60.0/22 183.0.0.0/10 183.64.0.0/13 @@ -3498,6 +3564,7 @@ 202.0.122.0/23 202.0.176.0/22 202.3.128.0/23 +202.3.134.0/24 202.4.128.0/19 202.4.252.0/22 202.5.208.0/21 @@ -3680,6 +3747,7 @@ 202.52.34.0/24 202.52.47.0/24 202.52.143.0/24 +202.52.144.0/24 202.53.140.0/24 202.53.143.0/24 202.57.192.0/20 @@ -3687,6 +3755,7 @@ 202.57.216.0/22 202.57.240.0/20 202.58.0.0/24 +202.58.101.0/24 202.58.104.0/22 202.58.112.0/22 202.59.0.0/23 @@ -3781,6 +3850,7 @@ 202.92.252.0/22 202.93.0.0/22 202.93.252.0/22 +202.94.68.0/24 202.94.74.0/24 202.94.81.0/24 202.94.92.0/22 @@ -4044,7 +4114,6 @@ 203.8.0.0/24 203.8.8.0/24 203.8.23.0/24 -203.8.24.0/21 203.8.70.0/24 203.8.82.0/24 203.8.86.0/23 @@ -4108,7 +4177,6 @@ 203.12.66.0/24 203.12.70.0/23 203.12.87.0/24 -203.12.88.0/21 203.12.100.0/23 203.12.103.0/24 203.12.114.0/24 @@ -4116,7 +4184,6 @@ 203.12.130.0/24 203.12.137.0/24 203.12.196.0/22 -203.12.200.0/21 203.12.211.0/24 203.12.219.0/24 203.12.226.0/24 @@ -4124,7 +4191,6 @@ 203.13.18.0/24 203.13.24.0/24 203.13.44.0/23 -203.13.80.0/21 203.13.88.0/23 203.13.92.0/22 203.13.173.0/24 @@ -4140,7 +4206,6 @@ 203.14.114.0/23 203.14.118.0/24 203.14.162.0/24 -203.14.184.0/21 203.14.192.0/24 203.14.194.0/23 203.14.214.0/24 @@ -4752,6 +4817,7 @@ 203.86.250.0/24 203.86.254.0/23 203.88.32.0/19 +203.88.100.0/22 203.88.192.0/19 203.89.0.0/22 203.89.8.0/21