6-4
Wednesday
标签
梦涛笔记

ROS通过aliyun域名解析实现DDNS脚本

ROS 发布时间:2025-06-02 00:03:12

优化获取地址方式,以及设置地址相同时不触发解析请求,避免频繁多余请求接口。


:local id "key"
:local secret "secret"
:local domain "your.domain.com"

:global GIPV4
:global GIPV6

# 定义拨号接口名称
:local interfaceName "pppoe-out1"

# 获取接口的IP地址
:local ipAddress [/ip address get [/ip address find interface=$interfaceName] address]

# 检查是否获取到IP地址
:if ($ipAddress != "") do={
    :set ipAddress [:pick $ipAddress 0 ([len $ipAddress] -3)]
  :if ($ipAddress != $GIPV4) do={
    :global GIPV4 $ipAddress
    :log info ("IP Address of $interfaceName: " . $ipAddress)

    :local result [/tool fetch url="https://www.zhisg.com/route.php/ddns/ali/set\?id=$id&secret=$secret&domain=$domain&ip=$ipAddress" as-value output=user];
    :log info $result;

  }
} else={
    :log error ("Failed to get IP address for $interfaceName")
}


# 定义IPV6地址接口名称
:local ipv6Interface "bridge1"
# 定义IPV6前缀地址池
:local ipv6Pool "TELEv6"

:local ipv6Addr [/ipv6 address get [/ipv6 address find interface=$ipv6Interface from-pool=$ipv6Pool] address ]
:local ipv6Prefix [ /ipv6 pool get [/ipv6 pool find name=$ipv6Pool] prefix ]

# 检查是否获取到IP地址
:if ($ipv6Addr != "") do={
    :set ipv6Addr [:pick $ipv6Addr 0 ([len $ipv6Addr] -3)]
  :if ($ipv6Addr != $GIPV6) do={
    :global GIPV6 $ipv6Addr
    :log info ("IPv6 Address of $ipv6Interface: " . $ipv6Addr)
    :log info ("IPv6 Prefix of $ipv6Pool: " . $ipv6Prefix)


    :local result [/tool fetch url="https://www.zhisg.com/route.php/ddns/ali/set\?id=$id&secret=$secret&domain=$domain&ip=$ipv6Addr&type=AAAA" as-value output=user];
    :log info $result;

  }
} else={
    :log error ("Failed to get IPv6 address for $ipv6Interface")
}

:log info "DDNS FINISHED"


评论: