当前位置:论坛首页 > Linux面板 > 建议

AI写的更新cloudflare域名IP的Python脚本,计划任务执行即可

发表在 Linux面板3 天前 [复制链接] 0 42

import os
import requests
import json

# Cloudflare API 配置
API_KEY = ' '
ZONE_ID = ' '
RECORD_ID = ' '
DOMAIN_NAME = 'lianchuliu.com'
IP_FILE = 'last_ip.txt'

# 获取当前公网IP
def get_current_ip():
    try:
        response = requests.get('https://ifconfig.me/ip')
        return response.text.strip()
    except requests.RequestException as e:
        print(f"Error getting current IP: {e}")
        return None

# 读取保存的IP
def read_saved_ip():
    if os.path.exists(IP_FILE):
        with open(IP_FILE, 'r') as file:
            return file.read().strip()
    return '0.0.0.0'

# 保存IP到文件
def save_ip(ip):
    with open(IP_FILE, 'w') as file:
        file.write(ip)

# 更新Cloudflare DNS记录
def update_cloudflare_dns(new_ip):
    url = f'https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records/{RECORD_ID}'
    headers = {
        'Authorization': f'Bearer {API_KEY}',
        'Content-Type': 'application/json'
    }
    data = {
        'type': 'A',
        'name': DOMAIN_NAME,
        'content': new_ip,
        'ttl': 120,
        'proxied': False
    }
    try:
        response = requests.put(url, headers=headers, data=json.dumps(data))
        response.raise_for_status()
        print(f"DNS record updated successfully to {new_ip}")
    except requests.RequestException as e:
        print(f"Error updating DNS record: {e}")

def main():
    saved_ip = read_saved_ip()
    current_ip = get_current_ip()

    if current_ip and current_ip != saved_ip:
        update_cloudflare_dns(current_ip)
        save_ip(current_ip)
    else:
        print("IP address has not changed.")

if __name__ == "__main__":
    main()

使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表