solaoxo 发表于 2013-9-29 18:31:25

求多线ip自动更新到nat脚本

本帖最后由 solaoxo 于 2013-9-29 21:22 编辑

如题,不要是每执行一次ip还没有变化的情况下就更新了to addresses,我自己有一个单线更新的脚本,一线的时候就是ip变化了才更新到to addresses,没变化是不会更新的,用了两个一样的脚本用双线的时候就变成每执行一次更新一次了,感觉这个很不稳定,老是在修改配置了

qq593455313 发表于 2013-9-29 18:31:26

:local curaddress
:local newaddress
:local status
:local x
:set x 3
:for i from=1 to=$x do={
    :set status running]
    :if ($status=true) do={
    :set newaddress address ]
    :set newaddress [:pick $newaddress 0 [:find $newaddress "/"]]
    :set curaddress [ /ip firewall nat get to-addresses ]
    :if ($curaddress != $newaddress) do={
       /ip firewall nat set [ /ip firewall nat find comment=("ADSL" . $i) ] to-addresses=$newaddress
       :log info ("Change ADSL" . $i . " NAT IP" )
         }
   }
}



这是3线的,自己更改参数。

大笨象 发表于 2013-9-29 23:14:10

同求,刚好也遇到这个问题?

ycfei 发表于 2013-9-29 23:26:01

没听懂什么意思啊。。有图吗?

touhgen 发表于 2013-9-30 10:58:51

:local nyr
:local yy ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $nyr 0 3]]+1)
:if ($yy<10) do={:set yy (0 . $yy)}
:set nyr ([:pick $nyr 7 11] . $yy . [:pick $nyr 4 6])
:local curip
:local newip
:local status
:local x1
#设定线路,默认2线
:set x1 3
:for i from=1 to=$x1 do={
    :set status running]
    :if ($status=true) do={
    :set newip address ]
    :set newip [:pick $newip 0 [:find $newip "/"]]
    :set curip [ /ip firewall nat get to-addresses ]
    :if ($curip != $newip) do={
       /ip firewall nat set [ /ip firewall nat find comment=("NAT-" . $i) ] to-addresses=$newip
:log error ("保存新IP成功")
}
}
}

solaoxo 发表于 2013-9-30 21:20:02

上面两个脚本原理好像都是一样的,是不是通过对比ip,ip不同才更新的,还是没对比就直接更新过去

touhgen 发表于 2013-9-30 21:52:38

是通过对比ip,ip才更新,本人在用

solaoxo 发表于 2013-9-30 22:11:46

touhgen 发表于 2013-9-30 21:52
是通过对比ip,ip才更新,本人在用

:local nyr
:local yy ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $nyr 0 3]]+1)
:if ($yy<10) do={:set yy (0 . $yy)}
:set nyr ([:pick $nyr 7 11] . $yy . [:pick $nyr 4 6])
这段是什么意思的

huigezi' 发表于 2013-9-30 23:02:48

solaoxo 发表于 2013-9-30 22:11
:local nyr
:local yy ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov ...

###获取当前系统日期
###取当前日期的月份
###检测月份数字少于10
###重设日期数字为双尾数 比如1设置为01

楼上的不知道复制谁的脚本搞些没用的东西上去

solaoxo 发表于 2013-10-1 04:41:18

huigezi' 发表于 2013-9-30 23:02
###获取当前系统日期
###取当前日期的月份
###检测月份数字少于10


谢谢了,长知识了
页: [1]
查看完整版本: 求多线ip自动更新到nat脚本