【求助】为什么更改IP地址,手动输入就OK,脚本就变成0.0.0.0
本帖最后由 57068368 于 2021-2-21 21:28 编辑上面的代码就是通过大猫的云得到另一个地方的地址。
:log warning $gettestbl 从云上得到另一地方IP地址。显示地址正常。
:global oldgettestbl 从本机得到老的地址,
:log warning $oldgettestbl 显示老的地址,
:if ($gettestbl != $oldgettestbl) do= {/interface gre set gre-tunnel2 remote-address=$gettestbl 判断新地址与老地址是否一样,不一样进行更改地址,就这一步就出错了,一改地址,就变成了0.0.0.0,希望帮忙看看那里有问题。
:log warning "地址更换完成"
} else={
:log warning "地址一样不需要更换"}
自己在命令行上直接手动打interface gre set gre-tunnel2 remote-address=$gettestbl 这条命令就能直接更换成IP地址。放到脚本里面就成0.0.0.0 :local mycvtoken "不能写的秘密"
:local result
:if ($result->"status" = "finished") do={
:global gettestbl ($result->"data")
:log warning $gettestbl}
:global oldgettestbl
:log warning $oldgettestbl
:if ($gettestbl != $oldgettestbl) do= {/interface gre set gre-tunnel2 remote-address=$gettestbl
:log warning "地址更换完成"}
else={
:log warning "地址一样不需要更换"}
:global oldgettestbl value-name=remote-address]
value-name=刪掉即可。
cspm333 发表于 2021-2-22 00:44
:global oldgettestbl value-name=remote-address]
value-name= ...
设置地址时还是出错,主要是在这一句上,帮忙看看应该如何修改,谢谢。:if ($gettestbl != $oldgettestbl) do= {/interface gre set gre-tunnel2 remote-address=$gettestbl }判断新地址与老地址是否一样,不一样进行更改地址,就这一步就出错了,一改地址,就变成了0.0.0.0,希望帮忙看看那里有问题。
本帖最后由 cspm333 于 2021-2-22 22:05 编辑
57068368 發表於 2021-2-22 20:10
設置地址時還是出錯,主要是在這一句上,幫忙看看應該如何修改,謝謝。:if ($gettestbl != $oldgettest ...
您script開頭沒宣告gettestbl,腳本讀不到gettestbl變數值,空值時remote-address自然填0.0.0.0
:global gettestbl
:log warning $gettestbl
:global oldgettestbl
:if ($gettestbl!=$oldgettestbl) do={
/interface gre set "gre-tunnel2" remote-address=$gettestbl
:log warning "地址更換完成"
} else={
:log warning "地址一樣不需要更換"
}
你这个不说其他的代码问题
首先你的 gettestbl ip没有进行转码判断
首先需要进行获取成功判断
成功后进行ip 类型判断
然后才进行修改动作
做好上面流程应该是没有问题的了 经与大猫猫学习得知自己错在
:global oldgettestbl
这条上面了,没有在上面定义OLDGETTESTBL的类型,应先用:global oldgettestbl 进行定义,然后使用:set oldgettestbl 得到地址,然后后面进行更改就没有问题了。
页:
[1]