Konuyu açan arkadaşın yönlendirmesi ile kod 2025 uyarladım. Kendisine çok teşekkürler.

İsteyenler direk dosya indirebilir.

https://drive.google.com/file/d/1gL4...ew?usp=sharing


Alıntı
import requests
import time

# Cloudflare API bilgileri
API_TOKEN = "APİ Key"
OLD_IP = "1.2.3.4.5" # Eski IP
NEW_IP = "1.2.3.4.5" # Yeni IP

headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json"
}

def get_all_zones():
"""Tüm zone'ları sayfalayarak getirir"""
zones = []
page = 1

while True:
response = requests.get(
"https://api.cloudflare.com/client/v4/zones",
headers=headers,
params={"page": page, "per_page": 100}
)
data = response.json()
if not data["success"]:
print("❌ Zone listesi alınamadı:", data)
break

zones.extend(data["result"])
if page >= data["result_info"]["total_pages"]:
break
page += 1

return zones

def get_all_a_records(zone_id):
"""Belirtilen zone'daki A kayıtlarını sayfalayarak getirir"""
records = []
page = 1

while True:
response = requests.get(
f"https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records",
headers=headers,
params={"type": "A", "per_page": 100, "page": page}
)
data = response.json()
if not data["success"]:
print(f"❌ DNS kayıtları alınamadı (Zone ID: {zone_id})")
break

records.extend(data["result"])
if page >= data["result_info"]["total_pages"]:
break
page += 1

return records

def update_a_record(zone_id, record, new_ip):
"""Belirtilen A kaydını yeni IP ile günceller"""
record_id = record["id"]
update_url = f"https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records/{record_id}"

data = {
"type": "A",
"name": record["name"],
"content": new_ip,
"ttl": record["ttl"],
"proxied": record["proxied"]
}

response = requests.put(update_url, headers=headers, json=data)
return response.status_code == 200

# === Ana İşlem Başlıyor ===

print("📡 Tüm domainler (zonelar) çekiliyor...")
zones = get_all_zones()
print(f"✅ Toplam {len(zones)} zone bulundu.n")

for zone in zones:
zone_name = zone["name"]
zone_id = zone["id"]
print(f"🌐 Zone: {zone_name}")

records = get_all_a_records(zone_id)

updated = 0
for record in records:
if record["content"] == OLD_IP:
success = update_a_record(zone_id, record, NEW_IP)
if success:
print(f" ✅ Güncellendi: {record['name']} -> {NEW_IP}")
updated += 1
else:
print(f" ❌ HATA: {record['name']} güncellenemedi.")

if updated == 0:
print(" ℹ️ Güncellenecek kayıt bulunamadı.")
time.sleep(0.5) # API rate limit'e karşı ufak gecikme

print("n🎉 Tüm işlemler tamamlandı.")