environment ที่ใช้ในการ config
mikrotik routerboard model : RB951G-2HnD
software version : 6.30
ddns : dyndns host
ISP : true internet ADSL
script ที่ใช้ ก็ตามนี้นะครับ
software version : 6.30
ddns : dyndns host
ISP : true internet ADSL
script ที่ใช้ ก็ตามนี้นะครับ
:local str "http://$ddnsuser:$ddnspass@members.dyndns.org/nic/update\?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
# Define User account&Host ddns Variables
:global ddnsuser "username"
:global ddnspass "password"
:global ddnshost "***.dyndns.**"
# Define Global Variables
:global ddnsip
:global ddnslastip
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip "0" }
:global ddnssystem ("mt-" . [/system package get system version] )
# Grab the current IP address on pppoe-out1 interface.
:global ddnsip [ /ip address get [/ip address find interface="pppoe-out1" ] address ]
:global ddnsip [:pick $ddnsip 0 [:find $ddnsip "/"]]
# Did we get an IP address to compare?
:if ([ :typeof $ddnsip ] = nil ) do={
:log info ("DynDNS: No ip address present on pppoe-out1 interface , please check.")
} else={
# NORMAL ROUTINE FOR RUN WHEN CHANGE IP
:if ($ddnsip != $ddnslastip) do={
:log info ("DynDNS: Sending UPDATE! IP:".$ddnsip)
:local str "/nic/update\?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
/tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
/tool fetch url=$str
:delay 1เวลาใช้ก็ปรับแก้ส่วน username, password แล้วก็ dyndns host ได้เลยครับ
:local str [/file find name="DynDNS.$ddnshost"];
/file remove $str
:global ddnslastip $ddnsip
}
}
ส่วน ใครที่ปรับแก้ interface pppoe-out1 ไป ก็ต้องไปแก้ชื่อให้ตรงด้วยนะครับ ไม่อย่างนั้นมันจะหยิบ ip ไป update dyndns ผิดนะครับ
หลังจากที่เราสร้าง script เสร็จเรียบร้อยเราก็ไปสร้าง scheduler มาเพื่อเรียก script ที่เราสร้างก็เป็นอันจบ ขั้นตอน เท่านี้ ก็จะสามารถ update ddns ไปให้ dyndns ได้เรียบร้อยครับ