欢迎光临散文网 会员登陆 & 注册

Ros脚本-更新cloudflare域名

2023-08-11 00:01 作者:stan1  | 我要投稿

:local apiKey "yourapikey"

:local zoneID "yourzoneID"

:local domainName "yourdomainame"

:local ttl "600"

#设置拨号的网络名

:local inf "pppoe-out1"


:local recordID ""

#自动获取cloudflare域名id

:local result [/tool fetch mode=https url="https://api.cloudflare.com/client/v4/zones/$zoneID/dns_records/?name=$domainName" http-method=get http-header="Authorization: Bearer $apiKey" as-value output=user];

:if ($result->"status"= "finished") do={

#:log info $result->"data"->"result"->"id"

:set result [:pick $result 0 ]

:set recordID [:pick $result ([:find $result "\"id\":\""]+6) ([:find $result "\",\"zone_id"])]

:log info $recordID

} else={

:log info "获取域名id失败"

}

# Do not edit below

# 原脚本检查出口ip,然后新旧ip对比,如果不同再更新,按需使用吧

#:local currentIP ([/tool fetch url="https://ifconfig.me/ip" mode=https output=user as-value]->"data")

#:local cloudflareDNSIP [:resolve $domainName server=1.1.1.1];

:local currentIP ""

:set currentIP [/ip address get [/ip address find interface=$inf] address]

:set currentIP [:pick $currentIP 0 ([len $currentIP] -3)]



:if ($currentIP != $cloudflareDNSIP) do={

  # If the IP has changed, update the Cloudflare record

  :log info ("Updating Cloudflare record.  New IP: " . $currentIP);

  :local payload ("{\"type\":\"A\",\"name\":\"" . $domainName . "\",\"content\":\"" . $currentIP . "\",\"ttl\":" . $ttl .",\"proxied\":false}")


  /tool fetch mode=https url="https://api.cloudflare.com/client/v4/zones/$zoneID/dns_records/$recordID" http-method=put http-header="Authorization: Bearer $apiKey"  http-data=$payload output=none;

}


Ros脚本-更新cloudflare域名的评论 (共 条)

分享到微博请遵守国家法律