RouterOS 自动拨号直至获得指定IP段IP的脚本

来源:互联网 发布:淘宝客成交不计入权重 编辑:程序博客网 时间:2024/06/06 04:16


两个步骤
1、在tools -> netwatch 里面添加一个监视项目,Host地址随便找一个公网上比较稳定的IP地址,我用的是114.114.114.114,这个主要用来获得PPPOE拨号成功时触发自动换ip的脚本的,然后在up中填入CheckIP。
2、建立CheckIP脚本
System -> Scripts 添加名为CheckIP的脚本,内容如下

:global adslinterface "ADSL-pppoe"
:global matchip "202.101"
:global adslip [ /ip address get [/ip address find interface=$adslinterface] address ]

:log info "CheckIP: PPPOE Connected!"
:if ([ :len [/interface find name=$adslinterface]] = 0 ) do={ :log info "CheckIP: No interface named $adslinterface, please check configuration." }
:if ([ :typeof $adslip ] = "nothing" ) do={
:log info ("CheckIP: No ip address present on " . $adslinterface . ", please check.")
} else={
:log info ("CheckIP: Current IP address is " . $adslip)
:while ([ :pick $adslip 0 [ :len $matchip] ] != $matchip) do={
:log info "CheckIP: IP match failed, redialing......"
/interface disable $adslinterface
/interface enable $adslinterface
:delay 2
:global adslip [ /ip address get [/ip address find interface=$adslinterface] address ]
}
}


 ================================
adslinterface为你的拨号接口名称
matchip为你想匹配的ip段,从头匹配,比如想要202.101.xx.xx段地址,matchip设为"202.101"即可。
拨号间隔速度2秒,根据实际从拨号开始到获取IP的时长调整,一定要大于实际拨号的时间,设置尽量宽裕些,否则会造成无限循环
netwatch触发间隔不要设置太短,至少也得1分钟

以上在Ros 5.25运行通过。。。


2 0
原创粉丝点击