使用 shell script 更新 cloudflare 的 DNS 記錄
記錄一下使用 shell script 更新 cloudflare 的 DNS 記錄(DDNS)
工作環境:
Linux
curl
jq
使用 curl 和 cloudflare API 溝通,就可以達成更新 DNS 記錄的目的,基本上就是提供 zone ID 和 API Token 給 cloudflare ,指定要更新的域名(FQDN),當然,要抓到目前使用的「對外」的 IP 位址一併提供
範例:updateCfDDNS flkjfldajldfj ddns.your.domain lfkdalfjldjf;lajd;lf
先在 cloudflare 管理頁面把目標網域名稱的 IP 設成 1.2.3.4 之類的值,執行後如果 IP 改好了,就是成功了
成功後再把這個 script 加到 crontab 裏,它就會定時更新 DDNS 了
收工!
============================================
手動查詢的相關指令:
curl -X GET
https://api.cloudflare.com/client/v4/zones/"$1"/dns_records?name="$2" -H
Authorization:Bearer "$3" -H Content-Type: application/json | python
-m json.tool
curl -X GET
"https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/dns_records?name=FQDN_TO_UPDATE"
-H "Authorization:Bearer API_Token_HERE" -H "Content-Type:
application/json" | jq -r ".result[] | select(.name ==
(\""$2"\")) | .id + \":\" + .name"
在 windows 環境下配置 batch 批次檔:注意 cmd 不支援 ' 單引號,所以 --data 有用到單引號的部份("' '"),要用 \" 的方式來替代,不然會出現類似資料格式還是內容不符、更新失敗的錯誤訊息
留言
張貼留言