Routeros可是使用Script脚本,做Curl的动作,可以是http get,也可以是http post,想象空间巨大。
我们可以使用routeros获取pppoe拨号的动态IP地址,然后执行/tool fetch url=”URL” 来将地址使用http get的方式,输出给服务器的API接口,由接口执行更多的计算动作,比如实现返回IP地址归属地等。
我们可以尝试,使用脚本获取本地地址,然后get url,代码例子如下:
:global pppoeIP;
:local newIP [/ip address get [find interface=pppoe-out1] address]
:set newIP [:pick $newIP 0 [:find $newIP "/"]]
:if ($pppoeIP = "") do={
:set pppoeIP $newIP
:log info "Initial IP: $pppoeIP"
} else={
:if ($newIP = $pppoeIP) do={
:log info "same"
} else={
:log info "different"
:set pppoeIP $newIP
:do [/tool fetch url="https://ca.anynat.net/getipapi/$newIP" dst-path=send.log check-certificate=no]
}
}
然后在https://ca.anynat.net/getipapi/$newIP 成功获取ip地址以后,利用api的算法,去执行更新dns解析的动作。