天天看點

通過Cloudflare API更新DNS記錄

2020又一新年了

今年第一篇貼一個通過Cloudflare API更新DNS記錄的腳本

過程基于OpenWRT系統,需要先安裝

curl

jsonfilter

先在Profile->api-tokens中申請一個API Token,權限需要Zone->Zone以及Zone->DNS的Edit權限

得到的token作為變量

cftoken

需要知道zone的ID,可以在域名Overview中看到,作為變量

zoneid

需要DDNS的域名作為變量

record_name

以下是更新A記錄的腳本

update_dns.sh

#!/bin/sh
wanip_v4=`curl -s -k https://ip.cn | jsonfilter -e "$.ip"`
record_name='abc.example.com'
zoneid='cd7d0123e3012345da9420df9514dad0'
cftoken='YQSn-xWAQiiEh9qM58wZNnyQS7FUdoqGIUAbrh7T'
zoneinfo=`curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zoneid/dns_records?name=$record_name&type=A" \
     -H "Authorization: Bearer $cftoken" \
     -H "Content-Type:application/json"`

recordid=`jsonfilter -s $zoneinfo -e '$.result[0].id'`

result_cf=`curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$zoneid/dns_records/$recordid" \
     -H "Authorization: Bearer $cftoken" \
     -H "Content-Type: application/json" \
     --data "{\"type\":\"A\",\"name\":\"$record_name\",\"content\": \"$wanip_v4\", \"ttl\":1,\"proxied\":false}"`
echo $result_cf           

複制

以下是更新AAAA記錄的腳本

update_dnsv6.sh

#!/bin/sh
wanip_v6=`curl -s ipv6.ip.sb`
record_name='abc.example.com'
zoneid='cd7d0123e3012345da9420df9514dad0'
cftoken='YQSn-xWAQiiEh9qM58wZNnyQS7FUdoqGIUAbrh7T'
zoneinfo=`curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zoneid/dns_records?name=$record_name&type=AAAA" \
     -H "Authorization: Bearer $cftoken" \
     -H "Content-Type:application/json"`

recordid=`jsonfilter -s $zoneinfo -e '$.result[0].id'`

result_cf=`curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$zoneid/dns_records/$recordid" \
     -H "Authorization: Bearer $cftoken" \
     -H "Content-Type: application/json" \
     --data "{\"type\":\"AAAA\",\"name\":\"$record_name\",\"content\": \"$wanip_v6\", \"ttl\":1,\"proxied\":false}"`
echo $result_cf           

複制

釋出于: Wednesday 1 January 2020 分享至微網誌

  • 估計你也會喜歡:
    • 從現有Linux系統上安裝Archlinux
    • CKA Exam 2020-06考試經驗
    • OpenWRT配置Apache Webdav

本作品采用知識共享署名-非商業性使用 4.0 國際許可協定進行許可。