23 กรกฎาคม 2558

Mikrotik Script update ddns for No-IP

กับบทความที่แล้วที่ทำให้กับ DYNDNS host กันมาแล้วในบทความนี้ก็ขอเอาใจคนใช้ No-IPหน่่อย เนื่องจาก script ที่ได้จาก wiki ของ mikrotik นั้น พอใช้กับ ADSL ของ true แล้วดันไม่อัพเดทเป็น ip ของ router แต่ไป update public ip เลยกลายเป็นว่า ไม่สามารถ ใช้งานได้

environment ที่ใช้ในการ config 
mikrotik routerboard model : RB951G-2HnD
software version : 6.30
ddns : no-ip host

ISP : true internet ADSL

script ที่ใช้ ก็ตามนี้นะครับ

# Define User account&Host ddns Variables
:global ddnsuser "username"
:global ddnspass "password"
:global ddnshost "***.no-ip.**"
# 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 ("No-IP: Sending UPDATE! IP:".$ddnsip)
    :local str "http://$ddnsuser:$ddnspass@dynupdate.no-ip.com/nic/update\?hostname=$ddnshost&myip=$ddnsip"
    /tool fetch url=$str
    :delay 1
    :local str [/file find name="No-IP.$ddnshost"];
    /file remove $str
    :global ddnslastip $ddnsip
    }
  }
เวลาใช้ก็ปรับแก้ส่วน ddnsuser, ddnspass แล้วก็ ddnshost ได้เลยครับ
ส่วน ใครที่ปรับแก้ interface pppoe-out1 ไป ก็ต้องไปแก้ชื่อให้ตรงด้วยนะครับ ไม่อย่างนั้นมันจะหยิบ ip ไป update no-ip ผิดนะครับ
หลังจากที่เราสร้าง script เสร็จเรียบร้อยเราก็ไปสร้าง scheduler มาเพื่อเรียก script ที่เราสร้างก็เป็นอันจบ ขั้นตอน เท่านี้ ก็จะสามารถ update ddns ไปให้ no-ipได้เรียบร้อยครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น