通过Cloudflare API更新DNS记录
时间:2022-07-22
本文章向大家介绍通过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 分享至微博
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法