changeip的DDNS一直是个头痛的问题,今天没事就写了个程序!
:local new
:global status
:global new1
:set status [/interface get [/interface find name=pppoe-out1] running]
:if ($status=true) do={
:set new [/ip address get [/ip address find dynamic=yes interface=pppoe-out1] address]
:set new [:pick $new 0 ([:len $new] -3)]
/tool dns-update address=$new key-name=ggm1 key=81 name=ggm.changeip.name
} else{
:set new1 [/ip address get [/ip address find dynamic=yes interface=pppoe-out2] address]
:set new1 [:pick $new1 0 ([:len $new1] -3)]
/tool dns-update address=$new1 key-name=ggm1 key=81 name=ggm.changeip.name
}
要读懂语句的哦!
:local new 这句的意思是,定义new这个变量
:global status 这句的意思是定义status这个变量
:global new1 这句的意思是,定义new这个变量
:set status [/interface get [/interface find name=pppoe-out1] running] 这句的意思是,判断pppoe-out1这个连接的状态,是否为true,也就是说,有没有正常联网。
:if ($status=true) do={ 这句的意思是,如果是true的,也就是说联上网的,那么就运行下面的脚本
:set new [/ip address get [/ip address find dynamic=yes interface=pppoe-out1] address] 这句的意思是,将pppoe-out1这个连接的IP地址的值 赋给 new这个变量
:set new [:pick $new 0 ([:len $new] -3)] 这句的意思是,将new这个变量,的最后三位字母去掉,重新赋给new这个变量 ( 因为上一句获得的IP地址是这样的:xxx.xxx.xxx.xx/24 我们要把/24去掉,就用这一句)
/tool dns-update address=$new key-name=用户名 key=密码 name=域名 这一句,就是将new变量中的IP地址,填入到,这一句更新的DNS命令中去。
}
:else={ 这句的意思是,如果是true的,也就是说联上网的,那么就运行下面的脚本
:set new1 [/ip address get [/ip address find dynamic=yes interface=pppoe-out2] address] 这句的意思是,将pppoe-out1这个连接的IP地址的值 赋给 new这个变量
:set new1 [:pick $new 0 ([:len $new] -3)] 这句的意思是,将new这个变量,的最后三位字母去掉,重新赋给new这个变量 ( 因为上一句获得的IP地址是这样的:xxx.xxx.xxx.xx/24 我们要把/24去掉,就用这一句)
/tool dns-update address=$new1 key-name=用户名 key=密码 name=域名 这一句,就是将new变量中的IP地址,填入到,这一句更新的DNS命令中去。
}这样就不用弄2个动态域名了
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。