前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Cloudflare API更新DNS记录

通过Cloudflare API更新DNS记录

作者头像
hiplon
发布2020-07-22 02:10:06
5.4K0
发布2020-07-22 02:10:06
举报
文章被收录于专栏:VNF

2020又一新年了

今年第一篇贴一个通过Cloudflare API更新DNS记录的脚本

过程基于OpenWRT系统,需要先安装curljsonfilter

先在Profile->api-tokens中申请一个API Token,权限需要Zone->Zone以及Zone->DNS的Edit权限

得到的token作为变量cftoken

需要知道zone的ID,可以在域名Overview中看到,作为变量zoneid

需要DDNS的域名作为变量record_name

以下是更新A记录的脚本

update_dns.sh

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
#!/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 分享至微博

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档