電訊茶室's Archiver

gfx86674 發表於 2015-1-12 23:12

自動修正firewall內的ddns-address

[i=s] 本帖最後由 gfx86674 於 2015-1-13 00:10 編輯 [/i]

有時後因為firewall filter或firewall mangle ,
需要將朋友的ddns地址標在src-address或dst-address內.

但您不可能一直記得住朋友的ip或ddns名稱,所以改用address-list ,
將朋友地址改存在標示為[color=Red][b]friends[/b][/color]的list是比較可行的方法.
不過問題是address-list同樣只能記ip ,無法記ddns名稱{:5_265:}
所以同樣用Script ,將ddns轉換成ip記錄到list上 ,並定時更新ddns所對應的ip

我以兩個朋友amber /KSN74為例 ,試做腳本給各位參考.
[img]http://i.imgur.com/WPgjys6.png[/img][code]:local newip
:local oldip

# amber ddns-ip
:set $newip [:resolve amber.dlinkddns.com]
:set $oldip [/ip firewall address-list get [find comment="amber"] address]
:if ($newip!=$oldip) \
    do={:log info ("更新amber ddns-ip: ".$newip)
        /ip firewall address-list set [find comment="amber"] address=$newip}

# KSN74 ddns-ip
:set $newip [:resolve kstsv.synology.me]
:set $oldip [/ip firewall address-list get [find comment="KSN74"] address]
:if ($newip!=$oldip) \
    do={:log info ("更新KSN74 ddns-ip: ".$newip)
        /ip firewall address-list set [find comment="KSN74"] address=$newip}[/code]

角色 發表於 2015-1-13 01:11

CHing, 你这个Script,是否需要行Scheduled job呢?

gfx86674 發表於 2015-1-13 02:01

[i=s] 本帖最後由 gfx86674 於 2015-1-13 12:35 編輯 [/i]

[b]回復 [url=http://www.telecom-cafe.com/forum/redirect.php?goto=findpost&pid=40163&ptid=6518]2#[/url] [i]角色[/i] [/b]
Yes!! 凡是要自動執行的腳本都一律放在Scheduled運作;
[img]http://i.imgur.com/SW91xVs.png[/img]
另外還有Script-list視窗,那是需手動的功能,
要點選[color=Red]Run-Scripit[/color]才會運作一次。
[img]http://i.imgur.com/9gX3bBr.png[/img]

自動的放在Scheduled-list;任務型的放在Script-list;
若要debug Script臭蟲則一定得在命令視窗貼上code,
記得code頭尾要補上{ },Script才能在命令視窗跑完所有程式碼。
[img]http://i.imgur.com/U12xP0a.png[/img]
在命令視窗跑Script是很嚴格的,只要有一個語法錯就會以紅字提示。
[img]http://i.imgur.com/Q9dSJgo.png[/img]
只要有紅字,紅字後面的code全部都會停止。

角色 發表於 2015-1-13 13:32

谢谢CHing的信息,还有一个问题,就是edit问题,一般你是怎样edit呢?用notepad?然后copy过去?还有用RB里面的edit呢?

gfx86674 發表於 2015-1-13 14:02

[i=s] 本帖最後由 gfx86674 於 2015-1-14 01:24 編輯 [/i]

[b]回復 [url=http://www.telecom-cafe.com/forum/redirect.php?goto=findpost&pid=40166&ptid=6518]4#[/url] [i]角色[/i] [/b]
先用電腦notepad編輯好 ,再把code一次全部複製起來..
[img]http://i.imgur.com/mGDRwoj.png[/img]
直接貼到命令視窗就開始RUN 了.
[img]http://i.imgur.com/Ag9U4OQ.png[/img]
您注意看notepad編輯 ,最後面我有空兩行 ,
所以貼到命令視窗時 ,最後RouterOS代替我按了兩次鍵盤Enter;P

頁: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.