guzlle kurmanız gerekiyordu önce, curl ile yapalım biz
<?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');
}
}
// 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');Örnek kullanım:
// Önce kuralları listele
listRules($apiKey, $email, $zoneId);
// Ardından istediğiniz kuralı aktif et
activateRule($apiKey, $email, $zoneId, 'buraya_kural_id_gelecek');