интересно, а кому они все принадлежали... надо бы подумать... и потом сделать вывод)
Возможно, просто надоело. Например. Давным давно, у меня был простой халявный хостинг. На своём движке. Несколько лимонов хитов в сутки. Но забот много, а прибыли мало. Чтобы экономить время, я сначала сделал регистрацию новых пользователей только по приглашениям от старых пользователей, а потом закрыл всю шарманку, и сейчас нет желания этим заниматься.
а долги в пару миллионов были перед кем-то?)
sudo apt install jq # или yum install jq
еще один человек отписался, что у него сработало!правда он из москвы)"если тестируете со своего мобильного, то отключите на пару минут мобильный интернет, затем получите новую сессию и сайт уже работает"
А что конкретно из этих настроек то влияет? :)) ech разве что. В общем, не могу уловить связь между настройками и доступом.Но за скрипт спасибо!
если значения непонятны, значит там все лишнее и смело можно отключать, а если там есть нужные значения, используемые на сайте, например websockets, то можно убрать из списка)
в данный момент, у самих CF проблемы, доигрались с РКНом)
#!/bin/bash# === КОНФИГУРАЦИЯ ===ZONE_ID="" # Замените на ваш ID зоныEMAIL="" # Замените на ваш EmailAPI_KEY="" # Замените на ваш глобальный API ключAPI_URL="https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/settings"# Список параметров для отключенияSETTINGS=( "0rtt" "always_online" "development_mode" "early_hints" "ech" "email_obfuscation" "hotlink_protection" "ipv6" "mirage" "opportunistic_onion" "polish" "pseudo_ipv4" "rocket_loader" "tls_1_2_only" "tls_client_auth" "websockets")# === ФУНКЦИЯ ОТПРАВКИ ЗАПРОСА С ПОВТОРАМИ ===send_patch_request() { local setting="$1" local max_attempts=5 local attempt=1 local delay=1 while (( attempt <= max_attempts )); do echo "⏳ Пытаюсь отключить '$setting' (попытка $attempt из $max_attempts)..." response=$(curl -s -X PATCH "$API_URL/$setting" \ -H "X-Auth-Email: $EMAIL" \ -H "X-Auth-Key: $API_KEY" \ -H "Content-Type: application/json" \ --data "{\"id\":\"$setting\",\"value\":\"off\"}") success=$(echo "$response" | jq -r '.success') if [[ "$success" == "true" ]]; then echo "✅ '$setting' успешно отключен." break else echo "❌ Ошибка при отключении '$setting'. Ответ сервера:" echo "$response" (( attempt++ )) sleep $delay fi done if (( attempt > max_attempts )); then echo "❗ Не удалось отключить '$setting' после $max_attempts попыток." fi}# === ОСНОВНОЙ ЦИКЛ ===for setting in "${SETTINGS[@]}"; do send_patch_request "$setting"done
<?php// === КОНФИГУРАЦИЯ ===$zoneId = ""; // Замените на ваш ID зоны$email = ""; // Замените на ваш Email$apiKey = ""; // Замените на ваш глобальный API ключ$apiBase = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/settings";// Список параметров для отключения$settings = [ '0rtt', 'always_online', 'development_mode', 'early_hints', 'ech', 'email_obfuscation', 'hotlink_protection', 'ipv6', 'mirage', 'opportunistic_onion', 'polish', 'pseudo_ipv4', 'rocket_loader', 'tls_1_2_only', 'tls_client_auth', 'websockets'];// === ФУНКЦИЯ ОТПРАВКИ PATCH-ЗАПРОСА С ПОВТОРАМИ ===function send_patch_request($setting, $email, $apiKey, $apiBase){ $maxAttempts = 5; $delaySeconds = 1; $attempt = 1; while ($attempt <= $maxAttempts) { echo "⏳ Пытаюсь отключить '$setting' (попытка $attempt из $maxAttempts)...\n"; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => "{$apiBase}/{$setting}", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "PATCH", CURLOPT_HTTPHEADER => [ "X-Auth-Email: {$email}", "X-Auth-Key: {$apiKey}", "Content-Type: application/json" ], CURLOPT_POSTFIELDS => json_encode([ "id" => $setting, "value" => "off" ]) ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); curl_close($ch); if ($error) { echo "⚠️ CURL ошибка: $error\n"; } $decoded = json_decode($response, true); if ($decoded && isset($decoded['success']) && $decoded['success'] === true) { echo "✅ '$setting' успешно отключен.\n"; return; } else { echo "❌ Ошибка при отключении '$setting'. Ответ сервера:\n"; echo $response . "\n"; } $attempt++; sleep($delaySeconds); } echo "❗ Не удалось отключить '$setting' после $maxAttempts попыток.\n";}// === ОСНОВНОЙ ЦИКЛ ===foreach ($settings as $setting) { send_patch_request($setting, $email, $apiKey, $apiBase);}exit;?>
картофельный интеллект получается тебя победил)
ну да ну да))