Dynamic DNS by Changeip.com

Dynamic DNS มีผู้ให้บริการหลายรายให้เลือก.ในที่นี้ จะกล่าวแค่ Changeip เท่านั้น http://www.changeip.com

ในการสร้าง DDNS สามารถ ทำได้ 2 วิธี

วิธีที่ 1

1. ไปที่ System / Script กด เพิ่ม New Script

 

 

1.1. ตั้งชื่อ script ในที่นี้อาจตั้งเป็น "ddns" ก็ได้ ตั้งอย่างไรจำไว้ด้วย เพราะเดียวเราจะต้องกำหนดในScheduler ว่าจะให้ Run Script ไหน

 

1.2. Copy script ข้างล่างนี้ไปวางได้เลย โดยเปลี่ยน 4 บรรทัดที่ให้แก้ไข (ผมทำเป็นสีเขียวไว้)

 

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# EDIT YOUR DETAILS / CONFIGURATION HERE

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:global ddnsuser "YourChangeIPUserID"

:global ddnspass "PASSWORD"

:global ddnshost "MyRouterHostname.example.org"

:global ddnsinterface "ether1"

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# END OF USER DEFINED CONFIGURATION

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:global ddnssystem ("mt-" . [/system package get [/system package find name=system] version] )

:global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface] address ]

:global ddnslastip

:if ([:len [/interface find name=$ddnsinterface]] = 0 ) do={ :log info "DDNS: No interface named

$ddnsinterface, please check configuration." }

:if ([ :typeof $ddnslastip ] = "nothing" ) do={ :global ddnslastip 0.0.0.0/0 }

:if ([ :typeof $ddnsip ] = "nothing" ) do={

:log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.")

} else={

:if ($ddnsip != $ddnslastip) do={

:log info "DDNS: Sending UPDATE!"

:log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip

"/"] ] key-name=$ddnsuser key=$ddnspass ] ]

:global ddnslastip $ddnsip

} else={

:log info "DDNS: No changes necessary."

}

}

# END OF SCRIPT

 

เรียบร้อยแล้ว กด OK ได้เลยครับ

 

 

2. การสร้าง Scheduler

2.1. ไปที่ System / Scheduler กด เพิ่ม New Schedule

 

 

2.2 Name : ให้ตั้งชื่ออะไรก็ได้

2.3. Interval : ความถี่ในการ Run เช่น 00:15:00 คือ ทุก 15 นาที

2.4.On Event : ใส่ชื่อของ script ที่ต้องการ Run เราก็ใส่ที่เราสร้างไว้เมื่อสักครู่นี้ คือ "ddns"จากนั้นกด OK เป็นอันเสร็จ

 

วิธีที่ 2  ในการสร้าง script และ schedule ด้วย Terminal

1. ให้ทำการ copy script ข้างล่างนี้ โดยแก้ไข 4 ส่วนเหมือนด้านบน

(สร้าง script และ schedule เสร็จแล้วค่อยไปเปิด script ใน winbox)

 #Command

/system script

add name="DDNS by Easy Network" policy=\

ftp,reboot,read,write,policy,test,winbox,password source="# Dynamic DNS Up\

date / Simple Edition\r\

\n# %\r\

\n# %\r\

\n# %\r\

\n# %\r\

\n# % % %\r\

\n# % % %\r\

\n# % % %\r\

\n# %\r\

\n# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\

\n# EDIT YOUR DETAILS / CONFIGURATION HERE\r\

\n# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\

\n:global ddnsuser \"YourChangeIPUserID\"\r\

\n:global ddnspass \"PASSWORD\"\r\

\n:global ddnshost \"MyRouterHostname.example.org\"\r\

\n:global ddnsinterface \"ether1\"\r\

\n# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\

\n# END OF USER DEFINED CONFIGURATION\r\

\n# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\

\n\r\

\n:global ddnssystem (\"mt-\" . [/system package get [/system package find\

\_name=system] version] )\r\

\n:global ddnsip [ /ip address get [/ip address find interface=\$ddnsinter\

face] address ]\r\

\n:global ddnslastip\r\

\n\r\

\n:if ([:len [/interface find name=\$ddnsinterface]] = 0 ) do={ :log info \

\"DDNS: No interface named \$ddnsinterface, please check configuration.\" \

}\r\

\n\r\

\n:if ([ :typeof \$ddnslastip ] = \"nothing\" ) do={ :global ddnslastip 0.\

0.0.0/0 }\r\

\n\r\

\n:if ([ :typeof \$ddnsip ] = \"nothing\" ) do={\r\

\n\r\

\n:log info (\"DDNS: No ip address present on \" . \$ddnsinterface . \", p\

lease check.\")\r\

\n\r\

\n} else={\r\

\n\r\

\n :if (\$ddnsip != \$ddnslastip) do={\r\

\n\r\

\n :log info \"DDNS: Sending UPDATE!\"\r\

\n :log info [ :put [/tool dns-update name=\$ddnshost address=[:pick \$\

ddnsip 0 [:find \$ddnsip \"/\"] ] key-name=\$ddnsuser key=\$ddnspass ] ]\r\

\n :global ddnslastip \$ddnsip\r\

\n\r\

\n } else={ \r\

\n\r\

\n :log info \"DDNS: No changes necessary.\"\r\

\n\r\

\n }\r\

\n\r\

\n}"

/system scheduler

add comment="" disabled=no interval=15m name="DDNS by Easy Network" on-event=\

"DDNS by Easy Network" policy=read,write,policy,test,password start-time=\

startup

# END DDNS