Last active 3 days ago

01_README.md Raw

NGINX Blocklist

A simple list of IP addresses and user agents that have been aggressively scraping websites, effectively causing a DDoS attack.

Keep in mind that this list is not exhaustive and may not cover all malicious actors, but it covers a huge portion of requests that would otherwise cause my application to run at high CPU usage, which is good enough for me. :)

blocklist.conf Raw
1# Generated on: 2026-04-13T09:19:49+00:00
2
3######################################
4## ? BEGIN: Huawei Cloud - AS136907 ##
5######################################
6deny 1.178.32.0/19;
7deny 101.44.0.0/16;
8deny 101.46.0.0/20;
9deny 101.46.128.0/17;
10deny 101.46.32.0/19;
11deny 101.46.64.0/19;
12deny 103.198.203.0/24;
13deny 103.215.0.0/23;
14deny 103.215.3.0/24;
15deny 103.240.156.0/22;
16deny 103.255.60.0/22;
17deny 103.40.100.0/22;
18deny 103.84.110.0/24;
19deny 110.238.100.0/22;
20deny 110.238.104.0/21;
21deny 110.238.112.0/20;
22deny 110.238.64.0/19;
23deny 110.238.96.0/24;
24deny 110.238.98.0/23;
25deny 110.239.64.0/18;
26deny 110.41.208.0/23;
27deny 110.41.210.0/24;
28deny 111.119.192.0/18;
29deny 111.91.0.0/17;
30deny 114.119.128.0/18;
31deny 115.167.44.0/23;
32deny 115.30.32.0/19;
33deny 119.12.160.0/20;
34deny 119.13.160.0/20;
35deny 119.13.32.0/21;
36deny 119.13.64.0/18;
37deny 119.8.0.0/20;
38deny 119.8.128.0/18;
39deny 119.8.18.0/24;
40deny 119.8.192.0/19;
41deny 119.8.21.0/24;
42deny 119.8.22.0/23;
43deny 119.8.224.0/24;
44deny 119.8.227.0/24;
45deny 119.8.228.0/22;
46deny 119.8.232.0/21;
47deny 119.8.24.0/21;
48deny 119.8.240.0/21;
49deny 119.8.248.0/23;
50deny 119.8.250.0/24;
51deny 119.8.252.0/22;
52deny 119.8.32.0/19;
53deny 119.8.64.0/18;
54deny 121.91.152.0/21;
55deny 121.91.168.0/21;
56deny 121.91.200.0/21;
57deny 122.8.128.0/18;
58deny 124.243.128.0/18;
59deny 124.71.248.0/23;
60deny 124.71.250.0/24;
61deny 124.71.252.0/23;
62deny 124.81.0.0/16;
63deny 139.9.98.0/23;
64deny 14.137.132.0/22;
65deny 14.137.136.0/21;
66deny 14.137.152.0/22;
67deny 14.137.156.0/23;
68deny 14.137.161.0/24;
69deny 14.137.163.0/24;
70deny 14.137.169.0/24;
71deny 14.137.170.0/23;
72deny 14.137.172.0/22;
73deny 146.174.128.0/18;
74deny 148.145.160.0/20;
75deny 148.145.192.0/19;
76deny 148.145.224.0/23;
77deny 148.145.234.0/23;
78deny 148.145.236.0/23;
79deny 148.145.254.0/23;
80deny 149.232.128.0/19;
81deny 150.40.128.0/17;
82deny 154.220.192.0/19;
83deny 154.81.16.0/20;
84deny 154.86.32.0/19;
85deny 154.93.100.0/23;
86deny 154.93.104.0/23;
87deny 154.95.112.0/21;
88deny 154.95.120.0/23;
89deny 154.95.72.0/22;
90deny 154.95.96.0/20;
91deny 156.230.32.0/20;
92deny 156.230.64.0/18;
93deny 156.232.16.0/20;
94deny 156.240.128.0/18;
95deny 156.253.16.0/20;
96deny 159.138.0.0/18;
97deny 159.138.128.0/19;
98deny 159.138.160.0/20;
99deny 159.138.176.0/21;
100deny 159.138.188.0/22;
101deny 159.138.192.0/20;
102deny 159.138.208.0/21;
103deny 159.138.216.0/22;
104deny 159.138.220.0/23;
105deny 159.138.224.0/19;
106deny 159.138.64.0/21;
107deny 159.138.76.0/22;
108deny 159.138.80.0/20;
109deny 159.138.96.0/19;
110deny 166.108.192.0/18;
111deny 176.52.128.0/19;
112deny 178.210.163.0/24;
113deny 180.87.192.0/18;
114deny 182.160.0.0/19;
115deny 182.160.36.0/22;
116deny 182.160.52.0/22;
117deny 182.160.56.0/21;
118deny 183.87.128.0/19;
119deny 183.87.32.0/19;
120deny 183.87.64.0/18;
121deny 185.193.152.0/22;
122deny 186.232.246.0/24;
123deny 188.119.192.0/18;
124deny 188.132.171.0/24;
125deny 188.132.188.0/24;
126deny 188.239.0.0/18;
127deny 189.1.192.0/18;
128deny 189.28.96.0/19;
129deny 190.92.192.0/18;
130deny 201.77.32.0/20;
131deny 202.170.88.0/21;
132deny 202.76.128.0/18;
133deny 203.123.80.0/20;
134deny 203.167.20.0/23;
135deny 203.167.22.0/24;
136deny 212.34.192.0/19;
137deny 213.250.128.0/18;
138deny 219.83.0.0/19;
139deny 219.83.112.0/22;
140deny 219.83.121.0/24;
141deny 219.83.122.0/23;
142deny 219.83.32.0/20;
143deny 219.83.60.0/23;
144deny 219.83.76.0/23;
145deny 219.83.80.0/21;
146deny 2404:a140:43::/48;
147deny 2405:f080:1000::/37;
148deny 2405:f080:1500::/40;
149deny 2405:f080:1600::/48;
150deny 2405:f080:1602::/47;
151deny 2405:f080:1800::/39;
152deny 2405:f080:1e02::/47;
153deny 2405:f080:1e04::/46;
154deny 2405:f080:1e20::/47;
155deny 2405:f080:2000::/36;
156deny 2405:f080:2a00::/48;
157deny 2405:f080:2e00::/47;
158deny 2405:f080:3000::/37;
159deny 2405:f080:4000::/39;
160deny 2405:f080:400::/38;
161deny 2405:f080:4102::/47;
162deny 2405:f080:4104::/48;
163deny 2405:f080:4200::/39;
164deny 2405:f080:800::/40;
165deny 2405:f080::/38;
166deny 2405:f080:a00::/39;
167deny 2405:f080:e02::/47;
168deny 2405:f080:e04::/46;
169deny 2405:f080:e0e::/47;
170deny 2405:f080:e10::/47;
171deny 2405:f080:ec00::/39;
172deny 27.106.0.0/17;
173deny 27.255.0.0/18;
174deny 2801:80:e0::/48;
175deny 42.201.128.0/17;
176deny 43.225.140.0/22;
177deny 43.255.104.0/22;
178deny 45.194.104.0/21;
179deny 45.202.128.0/18;
180deny 45.203.40.0/21;
181deny 46.250.160.0/19;
182deny 49.0.192.0/20;
183deny 49.0.224.0/19;
184deny 62.245.0.0/19;
185deny 80.238.128.0/19;
186deny 80.238.164.0/22;
187deny 80.238.168.0/21;
188deny 80.238.176.0/22;
189deny 80.238.180.0/23;
190deny 80.238.183.0/24;
191deny 80.238.184.0/22;
192deny 80.238.190.0/24;
193deny 80.238.192.0/18;
194deny 83.101.0.0/21;
195deny 83.101.116.0/23;
196deny 83.101.16.0/20;
197deny 83.101.32.0/21;
198deny 83.101.48.0/21;
199deny 83.101.56.0/22;
200deny 83.101.64.0/20;
201deny 83.101.8.0/23;
202deny 83.101.80.0/21;
203deny 83.101.88.0/23;
204deny 83.101.96.0/20;
205deny 87.119.12.0/24;
206deny 89.150.192.0/19;
207deny 94.244.128.0/18;
208deny 94.45.160.0/19;
209deny 94.74.64.0/18;
210####################################
211## ? END: Huawei Cloud - AS136907 ##
212####################################
213
214#################################################
215## ? BEGIN: Alibaba Cloud - AS134963 + AS45102 ##
216#################################################
217deny 103.206.40.0/22;
218deny 139.95.66.0/23;
219deny 14.1.112.0/22;
220deny 147.139.252.0/22;
221deny 149.129.160.0/24;
222deny 149.129.167.0/24;
223deny 149.134.179.0/24;
224deny 155.102.102.0/24;
225deny 155.102.71.0/24;
226deny 163.181.208.0/24;
227deny 163.181.41.0/24;
228deny 170.33.0.0/24;
229deny 170.33.101.0/24;
230deny 170.33.103.0/24;
231deny 170.33.128.0/22;
232deny 170.33.136.0/22;
233deny 170.33.144.0/24;
234deny 170.33.152.0/24;
235deny 170.33.16.0/22;
236deny 170.33.160.0/24;
237deny 170.33.2.0/23;
238deny 170.33.25.0/24;
239deny 170.33.26.0/23;
240deny 170.33.28.0/24;
241deny 170.33.32.0/21;
242deny 170.33.40.0/23;
243deny 170.33.44.0/22;
244deny 170.33.64.0/23;
245deny 170.33.66.0/24;
246deny 170.33.68.0/23;
247deny 170.33.75.0/24;
248deny 170.33.8.0/21;
249deny 170.33.80.0/22;
250deny 170.33.84.0/24;
251deny 170.33.86.0/23;
252deny 170.33.88.0/22;
253deny 170.33.92.0/23;
254deny 170.33.94.0/24;
255deny 170.33.96.0/22;
256deny 178.132.241.0/24;
257deny 178.132.242.0/23;
258deny 178.132.244.0/23;
259deny 178.132.247.0/24;
260deny 198.11.144.0/24;
261deny 203.107.48.0/22;
262deny 2401:8680:4004::/46;
263deny 2401:8680:4100::/46;
264deny 240b:4002:1010::/48;
265deny 47.236.216.0/22;
266deny 47.237.248.0/24;
267deny 47.238.24.0/22;
268deny 47.245.156.0/22;
269deny 47.245.220.0/22;
270deny 47.246.100.0/24;
271deny 47.246.130.0/24;
272deny 47.246.134.0/24;
273deny 47.246.156.0/24;
274deny 47.246.163.0/24;
275deny 47.246.90.0/24;
276deny 47.250.104.0/22;
277deny 47.250.64.0/22;
278deny 47.251.128.0/22;
279deny 47.251.192.0/22;
280deny 47.253.124.0/22;
281deny 47.57.197.0/24;
282deny 47.87.152.0/22;
283deny 47.87.24.0/21;
284deny 47.87.72.0/21;
285deny 47.90.172.0/22;
286deny 8.208.136.0/22;
287deny 8.209.122.0/24;
288deny 8.211.228.0/22;
289deny 8.212.100.0/22;
290deny 8.212.184.0/22;
291deny 8.212.93.0/24;
292deny 8.214.160.0/22;
293deny 8.215.164.0/22;
294deny 8.216.76.0/22;
295deny 8.220.124.0/22;
296deny 8.220.168.0/23;
297deny 8.220.170.0/24;
298deny 8.220.236.0/22;
299deny 8.220.248.0/21;
300deny 8.221.152.0/22;
301deny 103.135.210.0/24;
302deny 103.81.187.0/24;
303deny 110.76.21.0/24;
304deny 110.76.23.0/24;
305deny 116.251.64.0/18;
306deny 139.95.0.0/20;
307deny 139.95.128.0/21;
308deny 139.95.16.0/22;
309deny 139.95.64.0/23;
310deny 139.95.96.0/22;
311deny 140.205.1.0/24;
312deny 140.205.122.0/24;
313deny 147.139.0.0/17;
314deny 147.139.128.0/18;
315deny 147.139.192.0/19;
316deny 147.139.224.0/20;
317deny 147.139.240.0/21;
318deny 147.139.248.0/22;
319deny 149.129.0.0/20;
320deny 149.129.128.0/19;
321deny 149.129.16.0/21;
322deny 149.129.161.0/24;
323deny 149.129.162.0/23;
324deny 149.129.164.0/23;
325deny 149.129.166.0/24;
326deny 149.129.168.0/21;
327deny 149.129.176.0/20;
328deny 149.129.192.0/18;
329deny 149.129.32.0/19;
330deny 149.129.64.0/18;
331deny 156.236.12.0/24;
332deny 156.236.17.0/24;
333deny 156.245.1.0/24;
334deny 161.117.0.0/16;
335deny 170.33.104.0/22;
336deny 170.33.112.0/23;
337deny 170.33.114.0/24;
338deny 170.33.20.0/22;
339deny 170.33.24.0/24;
340deny 170.33.29.0/24;
341deny 170.33.30.0/23;
342deny 170.33.72.0/23;
343deny 170.33.76.0/22;
344deny 198.11.128.0/20;
345deny 198.11.145.0/24;
346deny 198.11.146.0/23;
347deny 198.11.148.0/22;
348deny 198.11.152.0/21;
349deny 198.11.160.0/19;
350deny 202.144.199.0/24;
351deny 203.107.2.0/23;
352deny 203.107.64.0/22;
353deny 203.107.68.0/24;
354deny 205.204.96.0/19;
355deny 223.5.5.0/24;
356deny 223.6.6.0/24;
357deny 2400:3200::/48;
358deny 2400:3200:baba::/48;
359deny 2400:b200:4100::/46;
360deny 2401:b180:4100::/48;
361deny 2404:2280:1000::/36;
362deny 2404:2280:2000::/35;
363deny 2404:2280:4000::/36;
364deny 2408:4000:1000::/48;
365deny 2408:4000:101::/48;
366deny 2408:4000:102::/48;
367deny 2408:4009:500::/48;
368deny 240b:4000::/30;
369deny 240b:4002:1011::/48;
370deny 240b:4002:1012::/47;
371deny 240b:4002:1014::/46;
372deny 240b:4002:1018::/45;
373deny 240b:4002:1020::/43;
374deny 240b:4002:1040::/42;
375deny 240b:4002:1080::/41;
376deny 240b:4002:1100::/40;
377deny 240b:4002:1200::/39;
378deny 240b:4002:1400::/38;
379deny 240b:4002:1800::/37;
380deny 240b:4002:2000::/35;
381deny 240b:4002:4000::/34;
382deny 240b:4002:8000::/33;
383deny 240b:4004::/30;
384deny 240b:4006:1000::/42;
385deny 240b:4007::/32;
386deny 240b:4009::/32;
387deny 240b:400b::/32;
388deny 240b:400c::/30;
389deny 240b:4011::/32;
390deny 240b:4012::/48;
391deny 240b:4013::/32;
392deny 240b:4014::/30;
393deny 43.100.0.0/15;
394deny 43.102.0.0/17;
395deny 43.102.192.0/18;
396deny 43.103.0.0/16;
397deny 43.104.0.0/14;
398deny 43.108.0.0/16;
399deny 43.110.0.0/15;
400deny 43.112.0.0/15;
401deny 43.114.0.0/16;
402deny 43.116.0.0/17;
403deny 43.117.0.0/18;
404deny 43.118.0.0/17;
405deny 43.119.0.0/17;
406deny 43.120.0.0/15;
407deny 43.91.0.0/16;
408deny 43.96.0.0/24;
409deny 43.96.10.0/23;
410deny 43.96.100.0/22;
411deny 43.96.104.0/23;
412deny 43.96.107.0/24;
413deny 43.96.112.0/23;
414deny 43.96.114.0/24;
415deny 43.96.116.0/24;
416deny 43.96.118.0/23;
417deny 43.96.122.0/24;
418deny 43.96.124.0/24;
419deny 43.96.18.0/24;
420deny 43.96.20.0/23;
421deny 43.96.23.0/24;
422deny 43.96.24.0/23;
423deny 43.96.26.0/24;
424deny 43.96.3.0/24;
425deny 43.96.32.0/22;
426deny 43.96.4.0/22;
427deny 43.96.40.0/24;
428deny 43.96.48.0/21;
429deny 43.96.59.0/24;
430deny 43.96.63.0/24;
431deny 43.96.64.0/24;
432deny 43.96.66.0/23;
433deny 43.96.68.0/22;
434deny 43.96.72.0/22;
435deny 43.96.78.0/24;
436deny 43.96.8.0/24;
437deny 43.96.80.0/23;
438deny 43.96.85.0/24;
439deny 43.96.88.0/24;
440deny 43.96.97.0/24;
441deny 43.98.0.0/15;
442deny 45.196.28.0/24;
443deny 45.199.179.0/24;
444deny 47.235.0.0/21;
445deny 47.235.12.0/23;
446deny 47.235.16.0/20;
447deny 47.235.8.0/22;
448deny 47.236.0.0/17;
449deny 47.236.128.0/18;
450deny 47.236.192.0/20;
451deny 47.236.208.0/21;
452deny 47.236.220.0/22;
453deny 47.236.224.0/19;
454deny 47.237.0.0/17;
455deny 47.237.128.0/18;
456deny 47.237.192.0/19;
457deny 47.237.224.0/20;
458deny 47.237.240.0/21;
459deny 47.237.249.0/24;
460deny 47.237.250.0/23;
461deny 47.237.252.0/22;
462deny 47.238.0.0/20;
463deny 47.238.128.0/17;
464deny 47.238.16.0/21;
465deny 47.238.28.0/22;
466deny 47.238.32.0/19;
467deny 47.238.64.0/18;
468deny 47.239.0.0/16;
469deny 47.240.0.0/14;
470deny 47.244.0.0/16;
471deny 47.245.0.0/17;
472deny 47.245.128.0/20;
473deny 47.245.144.0/21;
474deny 47.245.152.0/22;
475deny 47.245.160.0/19;
476deny 47.245.192.0/20;
477deny 47.245.208.0/21;
478deny 47.245.216.0/22;
479deny 47.245.224.0/19;
480deny 47.246.101.0/24;
481deny 47.246.102.0/23;
482deny 47.246.104.0/21;
483deny 47.246.120.0/24;
484deny 47.246.122.0/23;
485deny 47.246.124.0/23;
486deny 47.246.128.0/23;
487deny 47.246.131.0/24;
488deny 47.246.132.0/23;
489deny 47.246.135.0/24;
490deny 47.246.136.0/21;
491deny 47.246.144.0/22;
492deny 47.246.150.0/23;
493deny 47.246.152.0/22;
494deny 47.246.157.0/24;
495deny 47.246.158.0/23;
496deny 47.246.160.0/23;
497deny 47.246.162.0/24;
498deny 47.246.164.0/22;
499deny 47.246.168.0/21;
500deny 47.246.176.0/20;
501deny 47.246.192.0/21;
502deny 47.246.200.0/22;
503deny 47.246.32.0/22;
504deny 47.246.66.0/23;
505deny 47.246.68.0/23;
506deny 47.246.72.0/21;
507deny 47.246.80.0/24;
508deny 47.246.82.0/23;
509deny 47.246.84.0/22;
510deny 47.246.88.0/23;
511deny 47.246.91.0/24;
512deny 47.246.92.0/23;
513deny 47.246.96.0/22;
514deny 47.250.0.0/18;
515deny 47.250.108.0/22;
516deny 47.250.112.0/20;
517deny 47.250.128.0/17;
518deny 47.250.68.0/22;
519deny 47.250.72.0/21;
520deny 47.250.80.0/20;
521deny 47.250.96.0/21;
522deny 47.251.0.0/17;
523deny 47.251.132.0/22;
524deny 47.251.136.0/21;
525deny 47.251.144.0/20;
526deny 47.251.160.0/19;
527deny 47.251.196.0/22;
528deny 47.251.200.0/21;
529deny 47.251.208.0/20;
530deny 47.251.224.0/19;
531deny 47.252.0.0/16;
532deny 47.253.0.0/18;
533deny 47.253.112.0/21;
534deny 47.253.120.0/22;
535deny 47.253.128.0/17;
536deny 47.253.64.0/19;
537deny 47.253.96.0/20;
538deny 47.254.0.0/16;
539deny 47.52.0.0/16;
540deny 47.56.0.0/16;
541deny 47.57.0.0/17;
542deny 47.57.128.0/18;
543deny 47.57.192.0/22;
544deny 47.57.196.0/24;
545deny 47.57.198.0/23;
546deny 47.57.200.0/21;
547deny 47.57.208.0/20;
548deny 47.57.224.0/19;
549deny 47.74.0.0/15;
550deny 47.76.0.0/16;
551deny 47.77.0.0/20;
552deny 47.77.128.0/17;
553deny 47.77.16.0/21;
554deny 47.77.24.0/22;
555deny 47.77.32.0/19;
556deny 47.77.64.0/19;
557deny 47.77.96.0/20;
558deny 47.78.0.0/15;
559deny 47.80.0.0/14;
560deny 47.84.0.0/15;
561deny 47.86.0.0/16;
562deny 47.87.0.0/20;
563deny 47.87.128.0/20;
564deny 47.87.144.0/21;
565deny 47.87.156.0/22;
566deny 47.87.16.0/21;
567deny 47.87.160.0/19;
568deny 47.87.192.0/19;
569deny 47.87.224.0/20;
570deny 47.87.240.0/21;
571deny 47.87.32.0/19;
572deny 47.87.64.0/21;
573deny 47.87.80.0/20;
574deny 47.87.96.0/19;
575deny 47.88.0.0/16;
576deny 47.89.0.0/18;
577deny 47.89.122.0/23;
578deny 47.89.124.0/23;
579deny 47.89.128.0/17;
580deny 47.89.72.0/21;
581deny 47.89.80.0/22;
582deny 47.89.84.0/24;
583deny 47.89.88.0/23;
584deny 47.89.90.0/24;
585deny 47.89.92.0/22;
586deny 47.89.96.0/20;
587deny 47.90.0.0/17;
588deny 47.90.128.0/19;
589deny 47.90.160.0/21;
590deny 47.90.168.0/22;
591deny 47.90.176.0/20;
592deny 47.90.192.0/18;
593deny 47.91.0.0/16;
594deny 5.181.224.0/23;
595deny 8.208.0.0/17;
596deny 8.208.128.0/21;
597deny 8.208.140.0/22;
598deny 8.208.144.0/20;
599deny 8.208.160.0/19;
600deny 8.208.192.0/18;
601deny 8.209.0.0/19;
602deny 8.209.112.0/21;
603deny 8.209.120.0/23;
604deny 8.209.123.0/24;
605deny 8.209.124.0/22;
606deny 8.209.128.0/17;
607deny 8.209.36.0/22;
608deny 8.209.40.0/21;
609deny 8.209.48.0/20;
610deny 8.209.64.0/19;
611deny 8.209.96.0/20;
612deny 8.210.0.0/16;
613deny 8.211.0.0/17;
614deny 8.211.128.0/18;
615deny 8.211.192.0/19;
616deny 8.211.224.0/22;
617deny 8.211.232.0/21;
618deny 8.211.240.0/20;
619deny 8.212.0.0/18;
620deny 8.212.104.0/21;
621deny 8.212.112.0/20;
622deny 8.212.128.0/19;
623deny 8.212.160.0/20;
624deny 8.212.176.0/21;
625deny 8.212.188.0/22;
626deny 8.212.192.0/18;
627deny 8.212.64.0/20;
628deny 8.212.80.0/21;
629deny 8.212.88.0/22;
630deny 8.212.92.0/24;
631deny 8.212.94.0/23;
632deny 8.212.96.0/22;
633deny 8.213.0.0/16;
634deny 8.214.0.0/17;
635deny 8.214.128.0/19;
636deny 8.214.164.0/22;
637deny 8.214.168.0/21;
638deny 8.214.176.0/20;
639deny 8.214.192.0/18;
640deny 8.215.0.0/17;
641deny 8.215.128.0/19;
642deny 8.215.160.0/22;
643deny 8.215.168.0/21;
644deny 8.215.176.0/20;
645deny 8.215.192.0/18;
646deny 8.216.0.0/18;
647deny 8.216.128.0/17;
648deny 8.216.64.0/21;
649deny 8.216.72.0/22;
650deny 8.216.80.0/20;
651deny 8.216.96.0/19;
652deny 8.217.0.0/16;
653deny 8.218.0.0/15;
654deny 8.220.0.0/18;
655deny 8.220.112.0/21;
656deny 8.220.120.0/22;
657deny 8.220.128.0/19;
658deny 8.220.160.0/21;
659deny 8.220.171.0/24;
660deny 8.220.172.0/22;
661deny 8.220.176.0/20;
662deny 8.220.192.0/19;
663deny 8.220.224.0/21;
664deny 8.220.232.0/22;
665deny 8.220.240.0/21;
666deny 8.220.64.0/19;
667deny 8.220.96.0/20;
668deny 8.221.0.0/17;
669deny 8.221.128.0/20;
670deny 8.221.144.0/21;
671deny 8.221.156.0/22;
672deny 8.221.160.0/19;
673deny 8.221.192.0/18;
674deny 8.222.0.0/15;
675###############################################
676## ? END: Alibaba Cloud - AS134963 + AS45102 ##
677###############################################
678
679#####################################
680## ? START: Proton66.ru - AS198953 ##
681#####################################
682deny 176.120.22.0/24;
683deny 193.143.1.0/24;
684deny 37.77.150.0/24;
685###################################
686### ? END: Proton66.ru - AS19895 ##
687###################################
688
689#########################################################################
690## ? START: AI Scraper User Agents ##
691## Thanks to: https://github.com/ai-robots-txt/ai.robots.txt/tree/main ##
692#########################################################################
693if ($http_user_agent ~* "(AI2Bot|Ai2Bot\-Dolma|aiHitBot|Amazonbot|anthropic\-ai|Applebot|Applebot\-Extended|Brightbot\ 1\.0|Bytespider|CCBot|ChatGPT\-User|Claude\-Web|ClaudeBot|cohere\-ai|cohere\-training\-data\-crawler|Cotoyogi|Crawlspace|Diffbot|DuckAssistBot|FacebookBot|Factset_spyderbot|FirecrawlAgent|FriendlyCrawler|Google\-CloudVertexBot|Google\-Extended|GoogleOther|GoogleOther\-Image|GoogleOther\-Video|GPTBot|iaskspider/2\.0|ICC\-Crawler|ImagesiftBot|img2dataset|imgproxy|ISSCyberRiskCrawler|Kangaroo\ Bot|meta\-externalagent|Meta\-ExternalAgent|meta\-externalfetcher|Meta\-ExternalFetcher|NovaAct|OAI\-SearchBot|omgili|omgilibot|Operator|PanguBot|Perplexity\-User|PerplexityBot|PetalBot|QualifiedBot|Scrapy|SemrushBot\-OCOB|SemrushBot\-SWA|Sidetrade\ indexer\ bot|TikTokSpider|Timpibot|VelenPublicWebCrawler|Webzio\-Extended|YouBot)") {
694 return 403;
695}
696###################################
697## ? END: AI Scraper User Agents ##
698###################################
generate.php Raw
1<?php
2
3class BlocklistGenerator
4{
5 /**
6 * @var string The path to the template file.
7 */
8 private string $templateFile = __DIR__ . '/template.conf';
9
10 /**
11 * @var string The path to the output file.
12 */
13 private string $outputFile = __DIR__ . '/blocklist.conf';
14
15 /**
16 * @var array The blocklist data to be inserted into the template.
17 */
18 private array $asnList = [];
19
20 /**
21 * @var string The base URL for fetching ASN data.
22 */
23 private string $baseUrl = 'https://asn.ipinfo.app/api/text/nginx';
24
25 /**
26 * @var CurlHandle|null The cURL handle for making HTTP requests.
27 */
28 private ?CurlHandle $curl;
29
30 public function __construct()
31 {
32 if (!function_exists('curl_init')) {
33 throw new Exception("cURL extension is not enabled.");
34 }
35
36 $this->curl = curl_init();
37 }
38
39 /**
40 * Get list of ASNs that have been defined in the template file.
41 *
42 * @return array List of ASNs.
43 */
44 public function getAsnsFromTemplate()
45 {
46 $templateContent = file_get_contents($this->templateFile);
47 preg_match_all('/::(AS\d{1,7})/', $templateContent, $matches);
48
49 $this->asnList = $matches[1];
50 return $this->asnList;
51 }
52
53 /**
54 * Fetch blocklist data for each ASN and generate the final blocklist file.
55 */
56 public function generateBlocklist()
57 {
58 $finalBlocklist = file_get_contents($this->templateFile);
59
60 foreach ($this->asnList as $asn) {
61 $url = sprintf('%s/%s', $this->baseUrl, $asn);
62
63 curl_setopt($this->curl, CURLOPT_URL, $url);
64 curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
65
66 $response = curl_exec($this->curl);
67 if ($response === false) {
68 throw new Exception("cURL error: " . curl_error($this->curl));
69 }
70
71 $subnetList = explode("\n", trim($response));
72 sort($subnetList);
73
74 $result = implode("\n", $subnetList);
75
76 $replaceAsn = sprintf('::%s', $asn);
77 $finalBlocklist = str_replace($replaceAsn, $result, $finalBlocklist);
78 }
79
80 $timeGenerated = date('c');
81 $finalBlocklist = str_replace('TIME_GENERATED', "# Generated on: $timeGenerated", $finalBlocklist);
82 file_put_contents($this->outputFile, $finalBlocklist);
83 }
84}
85
86try {
87 $generator = new BlocklistGenerator();
88 $generator->getAsnsFromTemplate();
89 $generator->generateBlocklist();
90 echo "Blocklist generated successfully.\n";
91} catch (Exception $e) {
92 echo "Error: " . $e->getMessage() . "\n";
93}
template.conf Raw
1TIME_GENERATED
2
3######################################
4## ? BEGIN: Huawei Cloud - AS136907 ##
5######################################
6::AS136907
7####################################
8## ? END: Huawei Cloud - AS136907 ##
9####################################
10
11#################################################
12## ? BEGIN: Alibaba Cloud - AS134963 + AS45102 ##
13#################################################
14::AS134963
15::AS45102
16###############################################
17## ? END: Alibaba Cloud - AS134963 + AS45102 ##
18###############################################
19
20#####################################
21## ? START: Proton66.ru - AS198953 ##
22#####################################
23::AS198953
24###################################
25### ? END: Proton66.ru - AS19895 ##
26###################################
27
28#########################################################################
29## ? START: AI Scraper User Agents ##
30## Thanks to: https://github.com/ai-robots-txt/ai.robots.txt/tree/main ##
31#########################################################################
32if ($http_user_agent ~* "(AI2Bot|Ai2Bot\-Dolma|aiHitBot|Amazonbot|anthropic\-ai|Applebot|Applebot\-Extended|Brightbot\ 1\.0|Bytespider|CCBot|ChatGPT\-User|Claude\-Web|ClaudeBot|cohere\-ai|cohere\-training\-data\-crawler|Cotoyogi|Crawlspace|Diffbot|DuckAssistBot|FacebookBot|Factset_spyderbot|FirecrawlAgent|FriendlyCrawler|Google\-CloudVertexBot|Google\-Extended|GoogleOther|GoogleOther\-Image|GoogleOther\-Video|GPTBot|iaskspider/2\.0|ICC\-Crawler|ImagesiftBot|img2dataset|imgproxy|ISSCyberRiskCrawler|Kangaroo\ Bot|meta\-externalagent|Meta\-ExternalAgent|meta\-externalfetcher|Meta\-ExternalFetcher|NovaAct|OAI\-SearchBot|omgili|omgilibot|Operator|PanguBot|Perplexity\-User|PerplexityBot|PetalBot|QualifiedBot|Scrapy|SemrushBot\-OCOB|SemrushBot\-SWA|Sidetrade\ indexer\ bot|TikTokSpider|Timpibot|VelenPublicWebCrawler|Webzio\-Extended|YouBot)") {
33 return 403;
34}
35###################################
36## ? END: AI Scraper User Agents ##
37###################################