Browsing this Thread:   1 Anonymous Users






使用 Cloudflare API v4 建立 DDNS
#1
Just can't stay away
Just can't stay away


See User information
第一步:建立子域名
首先,先前往 Cloudflare,建立一个 A 记录。

第二步: 获取 Zone ID、API Token 和 Record ID

取得 子域名 的 Record ID

#!/bin/sh
ZONE_ID="你的 Zone ID"
API_TOKEN=" api token "
curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" 
     
-"Authorization: Bearer '$API_TOKEN'" 
     
-"Content-Type: application/json"



运行上面的命令,获取 JSON 格式的結果,找到 “name” 与目标相符的记录。


#!/bin/sh
NEW_IP=`curl -s http://ipv4.icanhazip.com`
CURRENT_IP=`cat ~/tmp/current_ip.txt`
CURRENT_TIME=$(date +"%F %T")
DDNS="ddns.xlxz.org"
ZONE_ID="{{ Zone ID}}"
API_TOKEN="{{ API Token}}"
RECORD_ID="{{ Record ID}}"
if [ "$NEW_IP"$CURRENT_IP]
then
        
echo "[$CURRENT_TIME] No Change in IP Adddress" >> ~/tmp/crontab_log.txt
else
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID
     
-"Authorization: Bearer $API_TOKEN
     
-"Content-Type: application/json" 
     
--data '{"type":"A","name":"'$DDNS'","content":"'$NEW_IP'","ttl":1,"proxied":false}' > /dev/null
echo $NEW_IP > ~/tmp/current_ip.txt
echo "[$CURRENT_TIME] IP changed to $NEW_IP>> ~/tmp/crontab_log.txt
fi


将文件保存 ( ~/bin/ddns.sh) ,在终端中输入 crontab -e 編輯。以下是以「每10分钟运行一次」

*/10 * * * * bash ~/bin/ddns.sh

Posted on: 2021/5/26 16:43
Top








friend links
Themes

(2 themes)
Login
Username:

Password:


Lost Password?
Register now!
Categories
Xoops (11)
--Modules (2)
--Themes (0)
Article (8)