Senin, 15 Juli 2013

script auto-update ddns via no-ip.com

Jika router mikrotik mendapat IP Address Public Dynamic maka,
berikut ini adalah script untuk update ip via no-ip.com
pertama-tama, tentu saja daftar di
(daptar nya kalau mau lewat referal gw, tinggal klik link tersebut, kalau gak berkenan ya gpp)

registrasi dan add host di no-ip.com
1. registrasi seperti biasa, isi first name, last name, email, username, password, dll. (yang di bold harap diperhatikan)
2. setelah registrasi selesai, login dengan username dan password.
3. Pilih Hosts/Redirects, lanjut dengan pilih Add Host
4. Isikan nama hostname dan pilih domain nya. (lagi-lagi yang di bold harap diperhatikan)
5. IP Address diisikan : 127.0.0.1
6. Setelah itu klik Create Host pada bagian bawah form.
7. Pembuatan hostname selesai. Tunggu satu menit untuk diupdate. Sementara itu kita buat scriptnya..

masuk winbox, pilih system--schedule--add

Name: sch-ddns-NoIP
Start Date: Jan/01/1970
Start Time: startup
Interval : 00:05:00 # tiap lima menit

Isikan on-event script berikut:

ubah yang garis bawah dengan username, password, dan hostname lengkap dengan domainnya di no-ip (mis. fmi.zapto.org)
username, password, dan hostname terdapat pada bagian yang di bold di tutorial registrasi di atas.

Code:
# DNS no-ip automatic DNS updates
# Informasi account di no-ip.com
:global usernoip "<isi username account di sini>"
:global passnoip "<isi password disini>"
:global hostnamenoip "<ganti dengan hostname lengkap di sini>"
# Edit variabel selesai di sini

:global previousIP

# Print di log untuk debug
:log info "DNSNoIP: Updating dynamic IP on DNS for host $hostnamenoip"
:log info "DNSNoIP: Pass $passnoip"
:log info "DNSNoIP: Last IP $previousIP"

# mendapatkan IP public di intenet, bisa juga dengan script PHP jika punya hosting support PHP
/tool fetch url="http://checkip.dyndns.org/" dst-path="/ddnsnoip.html"

:local hasil [/file get ddnsnoip.html contents]

# Edit untuk mendapatkan IP terbaru
:local hasilLen [:len $hasil]
:local startLoc [:find $hasil ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $hasil "</body>" -1]
:global currentIP [:pick $hasil $startLoc $endLoc]
:log info "DNSNoIP: IP sekarang $currentIP"

# persiapan update
:local str "/nic/update?hostname=$hostnamenoip&myip=$currentIP"

:if ($currentIP != $previousIP) do={
:log info "DNSNoIP: Dibutuhkan Update"
:set previousIP $currentIP
:log info "DNSNoIP: Kirim Update $currentIP"
:log info [:put [/tool fetch user="$usernoip" password="$passnoip" url="http://dynupdate.no-ip.com/$str" dst-path="/$hostnamenoip"]]
:log info "DNSNoIP: Host $hostnamenoip telah terupdate di DNSNoIP dengan IP $currentIP"
}  else={
:log info "DNSNoIP: IP sebelumnya $previousIP dan IP sekarang $currentIP sama, tidak dibutuhkan update"
}
 
 

0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites