Pencarian

Custom Search

Mengatasi Dynamic IP dengan Mikrotik

 
  • Masuk ke System --> Scripts , tambahkan scripts dibawah ini sesuaikan .
#************************************************************************************************
# Script Update Dynamic DNS di MikroTik Untuk Dyndns, No-IP dan ChangeIP
#
#************************************************************************************************
# ganti dengan infomasi account anda, username/password/hostname DDNS Anda
#************************************************************************************************

:local username "muhammadhilmiahadiat@gmail.com"
:local password "password"
:local hostname "smkn4.info"

# 2 pilihan untuk menangkap IP public anda "http" atau "iface"
# - http: akan menangkap/mencari IP public yang anda gunakan (skenario jika anda dibelakang NAT modem ADSL)
# - iface: akan menggunakan ip public yang di set di interface WAN mikrotik Anda

:local discoverBy "http"

# nama interface WAN yang akan digunakan menangkap IP public Anda (jika pilihan discoverBy = iface)

:local iface "2.Speedy-UP"

# pilih salah satu layanan Dynamic DNS yang anda gunakan: "dyndns", "noip", and "changeip"

:local service "www.changeip.com"

# Schedule(hari) untuk maksa update jika IP tidak berubah-ubah (agar account DDNS anda tetap aktif)
:local forceUpdate 15

#************************************************************************************************
# dibawah ini jangan di ganti2 jika anda tidak tahu apa yang anda lakukan
#************************************************************************************************

:local force
:global lastUpdate
:local currentIP

:if ($discoverBy="http") do={
   /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
   :local result [/file get dyndns.checkip.html contents]
   :local resultLen [:len $result]
   :local startLoc [:find $result ": " -1]
   :set startLoc ($startLoc + 2)
   :local endLoc [:find $result "" -1]
   :set currentIP [:pick $result $startLoc $endLoc]
} else={
   :set currentIP [ /ip address get [find interface=$iface disabled=no] address ]
   :for i from=( [:len $currentIP] - 1) to=0 do={
      :if ( [:pick $currentIP $i] = "/") do={ :set currentIP [:pick $currentIP 0 $i] }
   }
}

:local resolvedIP [:resolve $hostname]
:local date [ /system clock get date ]
:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
:local month [ :pick $date 0 3 ]; :local day [ :pick $date 4 6 ]; :local year [ :pick $date 7 11 ];
:local mm ([ :find $months $month -1 ] + 1);
:if ($mm < 10) do={ :set month ("0" . $mm); } else={ :set month $mm; }
:set date ($year . $month . $day);

:if ([ :typeof $lastUpdate ]=[:nothing] || (($date-$lastUpdate) >= $forceUpdate  && $forceUpdate > 0)) do={
   :set force true
}

:put ("Current IP: $currentIP ($discoverBy), Last update: $lastUpdate")

# Determine if dyndns update is needed
:if (($currentIP != $resolvedIP) || ($force = true)) do={
   
    :if ($service = "dyndns") do={
       /tool fetch user=$username password=$password mode=http address="members.dyndns.org" \
            src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/output.txt"
    }
    :if ($service = "noip") do={
       /tool fetch user=$username password=$password mode=http address="dynupdate.no-ip.com" \
            src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/output.txt"
    }
    :if ($service = "changeip") do={
       /tool fetch user=$username password=$password mode=http address="nic.changeip.com" \
            src-path="/nic/update?hostname=$hostname&myip=$currentIP" dst-path="/output.txt"
    }
    :local result [/file get output.txt contents]
    :log info ("dynamic-dns-updater: Service = $service, Hostname = $hostname")
    :log info ("dynamic-dns-updater: CurrentIP = $currentIP, Resolved IP = $resolvedIP")
    :log info ("dynamic-dns-updater: Update result: ".$result)
    /ip dns cache flush
    :set lastUpdate $date
}

  • Tambahkan ini di Terminal
/system scheduler
add disabled=no interval=5m name="Update DDNS setiap 5 menit" on-event=smkn4 policy=\
ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-date=mar/30/2014 start-time=14:24:00


Finish.
 
by : Muhammad Hilmi Ahadiat

0 Response to " Mengatasi Dynamic IP dengan Mikrotik "

Post a Comment

Silahkan untuk berkomentar apabila ada yang tidak dimengerti!!
Tapi tetap jaga kesopanan.