2020年6月19日 星期五

[教學]Mikrotik自動更新Freedns [2020更新版] Auto update to Freedns

大致上內容沒有變更多少,只是多了一個減少上傳的腳本,讓腳本判斷IP是否有變動,有變動才會上傳新的IP位置給Freedns,如何取得更新IP的Url,這方面可以參考上一篇舊的更新方式。


首先我們先建立腳本
路徑:System→Script
按「+」新增一個腳本設置就這樣


程式碼的部分貼進去
#定義參數
:global FerrDnsIP value=[/ip address get [find where interface=pppoe-out1] value-name=address];
:global FerrDnsIP value=[:pick $FerrDnsIP -1 [:find $FerrDnsIP "/" -1] ];

#ips.txt判定
:if ([:len [/file find where name=ips.txt]] < 1 ) do={
 /file print file=ips.txt where name=ips.txt;
 /delay delay-time=2;
 /file set ips.txt contents="0.0.0.0";
};

#判定更新
:global FreeDnsOldIP value=[/file get [find where name=ips.txt ] value-name=contents];
:if ($FreeDnsOldIP != $FerrDnsIP) do={
#系統紀錄
:log info message=("Try to Update FreeDNS with FerrDnsIP ".$FerrDnsIP." -  FreeDnsOldIP are ".$FreeDnsOldIP);
/tool fetch url="這裡輸入自己的Url" mode=https;
 :global FreeDnsOldIP value=$FerrDnsIP;
/file set ips.txt contents=$FerrDnsIP;
};
貼進去後可以點及Run Script 跑一次,成功的話可以看到這兩個檔案出現File list裡面,還有兩個參數會在Environment裡面。


接下來要設定間隔幾分鐘運作一次
路徑:System→Scheduler
按「+」新增


程式碼的部分貼進去
/system script run freedns
這樣就完成了,跟舊的一樣我是設定15分鐘檢查一次,檢查的時間跟腳本的名稱,可以依照自己的需求變更。


沒有留言:

張貼留言