CloudFlare Hesabınızdaki tüm domainlerde ip güncellemek istiyorsanız ilk önce request yüklü değil ise pip install ile yükleyin daha sonra kodu çalıştırın;

import requests
email = 'cloudflare tanimli mail'
api_key = 'clouflare orj api'
original_ip = 'eski ip'
new_ip = 'yeni ip'

headers = {
    'X-Auth-Email': email,
    'X-Auth-Key': api_key,
    'Content-Type': 'application/json',
}
def list_zones():
    zones = []
    url = 'https://api.cloudflare.com/client/v4/zones'
    while True:
        response = requests.get(url, headers=headers, params={'per_page': 50})
        data = response.json()
        zones.extend(data['result'])
        # Eğer daha fazla sayfa varsa, url'i güncelle
        total_pages = data['result_info']['total_pages']
        page = data['result_info']['page']
        if page < total_pages:
            url = f'https://api.cloudflare.com/client/v4/zones?page={page + 1}'
        else:
            break
    return zones
def update_dns_records(zone_id):
    url = f'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records'
    response = requests.get(url, headers=headers, params={'per_page': 100})
    dns_records = response.json()['result']

    for record in dns_records:
        if record['content'] == original_ip:
            update_url = f'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records/{record["id"]}'
            data = {
                'type': record['type'],
                'name': record['name'],
                'content': new_ip,
                'proxied': record['proxied'],
            }
            update_response = requests.put(update_url, headers=headers, json=data)
            if update_response.status_code == 200:
                print(f"Updated {record['name']} in zone {zone_id}")
            else:
                print(f"Failed to update {record['name']} in zone {zone_id}")
def main():
    zones = list_zones()
    for zone in zones:
        update_dns_records(zone['id'])

if __name__ == "__main__":
    main()