返回列表 發帖

自動修正firewall內的ddns-address

本帖最後由 gfx86674 於 2015-1-13 00:10 編輯

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

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

我以兩個朋友amber /KSN74為例 ,試做腳本給各位參考.
  1. :local newip
  2. :local oldip

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

  9. # KSN74 ddns-ip
  10. :set $newip [:resolve kstsv.synology.me]
  11. :set $oldip [/ip firewall address-list get [find comment="KSN74"] address]
  12. :if ($newip!=$oldip) \
  13.     do={:log info ("更新KSN74 ddns-ip: ".$newip)
  14.         /ip firewall address-list set [find comment="KSN74"] address=$newip}
複製代碼

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

TOP

本帖最後由 gfx86674 於 2015-1-13 12:35 編輯

回復 2# 角色
Yes!! 凡是要自動執行的腳本都一律放在Scheduled運作;

另外還有Script-list視窗,那是需手動的功能,
要點選Run-Scripit才會運作一次。


自動的放在Scheduled-list;任務型的放在Script-list;
若要debug Script臭蟲則一定得在命令視窗貼上code,
記得code頭尾要補上{ },Script才能在命令視窗跑完所有程式碼。

在命令視窗跑Script是很嚴格的,只要有一個語法錯就會以紅字提示。

只要有紅字,紅字後面的code全部都會停止。

TOP

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

TOP

本帖最後由 gfx86674 於 2015-1-14 01:24 編輯

回復 4# 角色
先用電腦notepad編輯好 ,再把code一次全部複製起來..

直接貼到命令視窗就開始RUN 了.

您注意看notepad編輯 ,最後面我有空兩行 ,
所以貼到命令視窗時 ,最後RouterOS代替我按了兩次鍵盤Enter

TOP

返回列表