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()