Dernière activité 1745852183

MisterFixx a révisé ce gist 1745852183. Aller à la révision

1 file changed, 73 insertions

app.js(fichier créé)

@@ -0,0 +1,73 @@
1 + import axios from 'axios';
2 + import pLimit from 'p-limit';
3 + const CONCURRENCY_LIMIT = 2; // setting this to any higher value will make cloudflare block you for 5 minutes
4 +
5 + const api = axios.create({
6 + baseURL: 'https://api.cloudflare.com/client/v4',
7 + headers: {
8 + "X-Auth-Email": "deez",
9 + "X-Auth-Key": "peter_griffin",
10 + "Content-Type": "application/json"
11 + }
12 + });
13 +
14 + async function fetchAllIPAccessRules() {
15 + const allRules = [];
16 + let page = 1;
17 + const perPage = 100;
18 +
19 + while (true) {
20 + const response = await api.get('/user/firewall/access_rules/rules', {
21 + params: {
22 + per_page: perPage,
23 + page
24 + }
25 + });
26 +
27 + const rules = response.data.result;
28 + const ipRules = rules.filter(rule =>
29 + rule.configuration.target === 'ip' ||
30 + rule.configuration.target === 'ip_range' ||
31 + rule.configuration.target === 'ip6'
32 + );
33 +
34 + allRules.push(...ipRules);
35 +
36 + const { total_pages } = response.data.result_info;
37 + console.log(`Fetched page ${page} of ${total_pages} (${ipRules.length} IP rules)`);
38 +
39 + if (page >= total_pages) break;
40 + page++;
41 + }
42 +
43 + return allRules;
44 + }
45 +
46 + async function deleteRule(ruleId) {
47 + try {
48 + await api.delete(`/user/firewall/access_rules/rules/${ruleId}`);
49 + console.log(`Deleted rule ${ruleId}`);
50 + } catch (err) {
51 + console.error(`Failed to delete rule ${ruleId}:`, err.response?.data || err.message);
52 + }
53 + }
54 +
55 + async function deleteAllIPAccessRules() {
56 + try {
57 + const ipRules = await fetchAllIPAccessRules();
58 + console.log(`Total IP access rules to delete: ${ipRules.length}`);
59 +
60 + const limit = pLimit(CONCURRENCY_LIMIT);
61 +
62 + const deletePromises = ipRules.map(rule =>
63 + limit(() => deleteRule(rule.id))
64 + );
65 +
66 + await Promise.allSettled(deletePromises);
67 + console.log('Finished deleting all rules.');
68 + } catch (err) {
69 + console.error('Error:', err.response?.data || err.message);
70 + }
71 + }
72 +
73 + deleteAllIPAccessRules();
Plus récent Plus ancien