RouterOS软路由利用DNSPOD获取拨号IP

###注意事项:子域名请尽量全部大于3位,如果子域名列表里同时存在1.x.com和11.x.com记录时会出现误判###
###定义DNSPOD的TOKEN###
:global mytoken "xxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxx"
###定义自己的需更新域名(不需要更新的IP类型留空即可)###
:global mydomains4 "ros.my-file.cn"
###定义自己的需更新的拨号接口###
:global myint "pppoe-out1"
###以下内容无需修改###
###预判断域名是否为双栈###
:global v4putex ""
:global v6putex ""
:if ($mydomains4 = $mydomains6) do={:log error "检测到当前更新域名使用双栈。";:global v4putex "&offset=0&length=1";:global v6putex "&offset=1&length=1";}
:if ([:len $mydomains4] >0) do={
###开始IPV4获取工作,可自行按需调整###
:global mydomain41 [:pick $mydomains4 ([:find $mydomains4 "."] +1) [:len $mydomains4]]
:global mydomain42 [:pick $mydomains4 0 [:find $mydomains4 "."]]
:global myipv4 [/ip address get [find interface=$myint] address]
:set myipv4 [:pick $myipv4 0 [:find $myipv4 "/"]]
###开始DNSPOD处理IPV4工作,以下请勿修改###
:log error "DNSPOD脚本执行IPV4更新开始"
:do [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$mytoken&format=json&domain=$mydomain41&sub_domain=$mydomain42&$v4putex"]
:delay 5s
:global reprec [/file get [find name="Record.List"] contents]
:if ([:len [:find $reprec "u7a7a"]] >0) do={
/file remove [find name="Record.List"]
:log error "DNSPOD因为没有对应子域名,尝试自己NEW一个。"
:global myipv4
:do [/tool fetch url="https://dnsapi.cn/Record.Create" http-data="login_token=$mytoken&format=json&domain=$mydomain41&sub_domain=$mydomain42&value=$myipv4&record_type=A&record_line=%e9%bb%98%e8%ae%a4" keep-result=no]
:delay 5s
:do [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$mytoken&format=json&domain=$mydomain41&sub_domain=$mydomain42"]
:delay 5s
:global reprec [/file get [find name="Record.List"] contents]
}
:if ([:len [:find $reprec "u6210"]] >0) do={
:global dnspodf [/file get [find name="Record.List"] contents]
:global fdend [:find $dnspodf ("\"".$mydomain42."\"")]
:global fdinfo [:pick $dnspodf 0 $fdend]
:while ([:len [:find $fdinfo "{"]] > 0) do={
:global fdinfo [:pick $fdinfo ([:find $fdinfo "{"] +1) [:len $fdinfo]]}
:global fdinfo [:pick $fdinfo 6 [:len $fdinfo]]
:global fdinfo [:pick $fdinfo 0 [:find $fdinfo "\","]]
:global recordid $fdinfo
/file remove [find name="Record.List"]
:global myipv4
:if ([:len [:find $dnspodf $myipv4]] >0) do={
:log error ("DNSPOD放弃更新,IPV4没有变化。")
} else={
:do [/tool fetch url="https://dnsapi.cn/Record.Modify" http-data="login_token=$mytoken&format=json&domain=$mydomain41&record_id=$recordid&sub_domain=$mydomain42&value=$myipv4&record_type=A&record_line=%e9%bb%98%e8%ae%a4"]
:delay 5s
:global reprec [/file get [find name="Record.Modify"] contents]
/file remove [find name="Record.Modify"]
:if ([:len [:find $reprec "u6210"]] >0) do={
:log error ("DNSPOD更新IPV4成功。当前IPV4为:".myipv4)
} else={
:log error "DNSPOD更新IPV4失败"
}}}
:log error "DNSPOD执行脚本IPV4更新完毕"}

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。若您的权益被侵害,请及时发邮件联系我们(boluo#88.com)。在您发送邮件后,工作人员会尽快处理,由于涉及内容不同,所需周期也不同,请您耐心等待。

给TA发电
共{{data.count}}人
人已发电
4 条回复 A文章作者 M管理员
  1. 黄色

    不知道咋用 ✗emoticon6✗

  2. wngamebox0708

    这是个神技,不是一般人能掌握的

  3. Tinyhee

    看不懂。。

  4. user957

    不明觉厉系列

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索