Pages

Tuesday 19 December 2017

VIEW NVR CCTV LEWAT INTERNET DENGAN MIKROTIK DAN MODEM FIBER OPTIK INDIHOME

1. SETTING MODEM FO INDIHOME




2. SETTING MIKROTIK

A. SETTING FIREWALL NAT




    
B. SCRIPT UPDATE DYNDNS NO-IP

:local username "username NoIp"
:local password "Password NoIp"
:local hostname "HostName NoIp"

# 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 "WAN1"

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

:local service "noip"

# 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
}

C. SCHEDULER SCRIPT UPDATE DYNDNS NO-IP






No comments:

Post a Comment