diff --git a/choose.sh b/choose.sh index 3229667..e161cec 100644 --- a/choose.sh +++ b/choose.sh @@ -60,23 +60,49 @@ do done # 从use/use.txt文件中读取IP地址,并使用Cloudflare API更新DNS记录 +# 使用Cloudflare API获取子域名的所有A记录 +records=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?type=A&name=${SUBDOMAIN}" \ +-H "X-Auth-Email: ${EMAIL}" \ +-H "X-Auth-Key: ${API_KEY}" \ +-H "Content-Type: application/json") + +# 从返回值中提取出所有A记录的ID +record_ids=$(echo "$records" | jq -r '.result[].id') + +# 遍历所有A记录的ID,并使用Cloudflare API删除DNS记录 +for record_id in $record_ids +do + response=$(curl -s -X DELETE "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records/${record_id}" \ + -H "X-Auth-Email: ${EMAIL}" \ + -H "X-Auth-Key: ${API_KEY}" \ + -H "Content-Type: application/json") + + if echo "$response" | grep -q '"success":true'; then + echo "DNS record with ID $record_id deleted successfully" + else + echo "Failed to delete DNS record with ID $record_id" + fi +done + +# 从use/use.txt文件中读取IP地址,并使用Cloudflare API添加DNS记录 while IFS= read -r ip do - # 使用Cloudflare API更新DNS记录 - response=$(curl -X POST "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records" \ + # 使用Cloudflare API添加DNS记录 + response=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records" \ -H "X-Auth-Email: ${EMAIL}" \ -H "X-Auth-Key: ${API_KEY}" \ -H "Content-Type: application/json" \ - --data '{"type":"A","name":"'${SUBDOMAIN}'","content":"'${ip}'","ttl":'${TTL}',"proxied":false}' 2>/dev/null) + --data '{"type":"A","name":"'${SUBDOMAIN}'","content":"'${ip}'","ttl":'${TTL}',"proxied":false}') # 检查返回值中的success字段是否为true if echo "$response" | grep -q '"success":true'; then - echo "IP $ip added successfully" + echo "DNS record for IP $ip added successfully" else - echo "IP $ip failed to add" + echo "Failed to add DNS record for IP $ip" fi done < use/use.txt + # 删除iplist文件夹 cd .. && rm -rf iplist || { echo "Remove iplist folder failed"; exit 1; }