使用linux shell脚本自动更新cloudflare DNS解析

#!/bin/bash

# 获取本机公网IP地址
ip_address=$(curl --interface eth0 -s http://ifconfig.me)

if [[ -z "$ip_address" ]]; then
          echo "Failed to retrieve public IP address."
            exit 1
fi
#ip_address="1.1.1.1"
# 设置DNS记录
# 这里替换成你的cloudflare Glbal API Key
cloudflare_api_key="mPnacUw0fJ8qpoEEVD0k-wdfwDSjfWvJhOlhlEtI"  
cloudflare_email="ahdongdong01@gmail.com" #换成你的cloudflare邮箱账号
zone_id="ee751a064027769387b6d0c9595cad88" #这个是cloudflare概述页面的区域ID
dns_record_id="0000"
dns_record_name="1201.io" #你的域名

response=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records?name=$dns_record_name" \
                     -H "Authorization: Bearer $cloudflare_api_key" \
                     -H "Content-Type: application/json" )

dns_record_id=$(echo "$response" | jq -r '.result[0].id')

if [[ -z "$dns_record_id" ]]; then
          echo "Failed to retrieve record ID for record: $record_name"
            exit 1
fi

echo "DNS record ID for $record_name: $dns_record_id"


curl -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records/$dns_record_id" \
             -H "Authorization: Bearer $cloudflare_api_key" \
                  -H "Content-Type: application/json" \
                       --data '{"type": "A", "name": "'"$dns_record_name"'", "content": "'"$ip_address"'", "ttl": 1, "proxied": false}'

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

© 2024 迷 - IP: 18.117.100.224