lonescary adlı üyeden alıntı:
mesajı görüntüle
Cloudflare API ile kural aktif etme
14
●238
- 24-12-2024, 00:31:19Hayır verdiğiniz kodu çalıştırıyorum, aktif/pasif oldu şeklinde yazı çıkıyor fakat bir değişiklik yapmıyorvictories adlı üyeden alıntı: mesajı görüntüle
- 24-12-2024, 00:38:56disabled değil paused kullanmamız gerekiyormuş. https://developers.cloudflare.com/fi...s/json-object/
<?php // Cloudflare API kimlik bilgileri $apiKey = 'YOUR_API_KEY'; $email = 'YOUR_EMAIL'; $zoneId = 'YOUR_ZONE_ID'; // Kuralları listeleme fonksiyonu function listRules($apiKey, $email, $zoneId) { // CURL başlat $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules"); // CURL ayarları curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "X-Auth-Email: {$email}", "X-Auth-Key: {$apiKey}", "Content-Type: application/json" ]); // İsteği gönder $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // CURL hata kontrolü if(curl_errno($ch)) { echo "CURL Hatası: " . curl_error($ch) . "\n"; curl_close($ch); return; } curl_close($ch); // Yanıtı işle $result = json_decode($response, true); if ($httpCode == 200 && $result['success']) { if (empty($result['result'])) { echo "Hiç kural bulunamadı.\n"; return; } echo "MEVCUT KURALLAR:\n"; echo str_repeat('-', 100) . "\n"; echo sprintf("%-32s | %-20s | %-15s | %s\n", 'KURAL ID', 'AD', 'DURUM', 'AÇIKLAMA'); echo str_repeat('-', 100) . "\n"; foreach ($result['result'] as $rule) { echo sprintf("%-32s | %-20s | %-15s | %s\n", $rule['id'], substr($rule['description'] ?? 'İsimsiz', 0, 20), $rule['status'], $rule['expression'] ?? 'Açıklama yok' ); } echo "\nToplam " . count($result['result']) . " kural listelendi.\n"; } else { echo "Hata oluştu (HTTP Kodu: $httpCode):\n"; print_r($result['errors'] ?? 'Bilinmeyen hata'); } } // Kural aktifleştirme fonksiyonu function activateRule($apiKey, $email, $zoneId, $ruleId) { // CURL başlat $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}"); // İstek verisi $data = json_encode(['status' => 'active']); // CURL ayarları curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "X-Auth-Email: {$email}", "X-Auth-Key: {$apiKey}", "Content-Type: application/json" ]); // İsteği gönder $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // CURL hata kontrolü if(curl_errno($ch)) { echo "CURL Hatası: " . curl_error($ch) . "\n"; curl_close($ch); return; } curl_close($ch); // Yanıtı işle $result = json_decode($response, true); if ($httpCode == 200 && $result['success']) { echo "Kural başarıyla aktif edildi.\n"; } else { echo "Hata oluştu (HTTP Kodu: $httpCode):\n"; print_r($result['errors'] ?? 'Bilinmeyen hata'); } } // Kural devre dışı bırakma fonksiyonu function pauseRule($apiKey, $email, $zoneId, $ruleId) { // CURL başlat $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}"); // İstek verisi $data = json_encode(['status' => 'paused']); // CURL ayarları curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "X-Auth-Email: {$email}", "X-Auth-Key: {$apiKey}", "Content-Type: application/json" ]); // İsteği gönder $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // CURL hata kontrolü if(curl_errno($ch)) { echo "CURL Hatası: " . curl_error($ch) . "\n"; curl_close($ch); return; } curl_close($ch); // Yanıtı işle $result = json_decode($response, true); if ($httpCode == 200 && $result['success']) { echo "Kural başarıyla devre dışı bırakıldı.\n"; } else { echo "Hata oluştu (HTTP Kodu: $httpCode):\n"; print_r($result['errors'] ?? 'Bilinmeyen hata'); } } // Kullanım örnekleri: // Tüm kuralları listele echo "Kurallar listeleniyor...\n\n"; listRules($apiKey, $email, $zoneId); // Belirli bir kuralı aktif et // echo "\nKural aktif ediliyor...\n"; // activateRule($apiKey, $email, $zoneId, 'KURAL_ID'); // Belirli bir kuralı devre dışı bırak // echo "\nKural devre dışı bırakılıyor...\n"; // pauseRule($apiKey, $email, $zoneId, 'KURAL_ID');sanırım bu sorunsuz çalışacaktır. - 24-12-2024, 00:58:57Hocam kendi üzerinizde test ettiniz mi? şuan bende aktif/deaktif hiç birini yapmıyor.victories adlı üyeden alıntı: mesajı görüntüle
- 24-12-2024, 01:05:57Cloudflare kullanmadığım için test etme şansım yok, https://developers.cloudflare.com/fi...irewall-rules/ adresindeki açıklamalara bakmıştım.lonescary adlı üyeden alıntı: mesajı görüntüle