#!/bin/bash # 配置区域 SECRET_ID="1254941018" SECRET_KEY="AKIDDG2XmkRr0tUoreZHjvqUrxsWtzpOghRu" DOMAIN="dongshan.tech" SUB_DOMAIN="photo" API_URL="https://dnspod.tencentcloudapi.com" IP_FILE=".cf-wan_ip_backup.disbaidu.com.txt" # 进入脚本所在的目录 cd "$(dirname "$0")" # 检查 IP 文件是否存在 if [ ! -f "$IP_FILE" ]; then echo "文件 $IP_FILE 不存在,请检查。" exit 1 fi # 从文件中读取当前 IP FILE_IP=$(cat "$IP_FILE" | tr -d '\n') # 检查文件中的 IP 是否是合法的 IPv4 地址 if [[ ! "$FILE_IP" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then echo "文件中记录的 IP 地址无效:$FILE_IP" exit 1 fi # 获取域名解析到的现有 IP DNS_IP=$(ping -c 1 "$SUB_DOMAIN.$DOMAIN" | head -1 | grep -oP '([0-9]{1,3}\.){3}[0-9]{1,3}') if [ -z "$DNS_IP" ]; then echo "无法解析 $SUB_DOMAIN.$DOMAIN,请检查网络或域名配置。" exit 1 fi # 对比 IP,如果一致则退出 if [ "$FILE_IP" == "$DNS_IP" ]; then echo "IP 地址未变化,无需更新。" exit 0 fi echo "IP 地址发生变化,文件中的 IP:$FILE_IP,当前解析 IP:$DNS_IP" # 调用 DNSPod API 修改 DNS 记录 TIMESTAMP=$(date +%s) NONCE=$RANDOM # 查询记录的 RecordId REQUEST_PAYLOAD=$(cat <