mikrotik ¿¡¼­ dyndns ÀÚµ¿ IP ¾÷µ¥ÀÌÆ® ver 2

Leo   
   Á¶È¸ 6649   Ãßõ 0    

아래 dyndns 자동 업데이트 스크립트를 살짝 바꿔서
dyndns 에 2개의 hostname 을 등록했을때 2개 모두 업데이트 하도록 하는 스크립트를 만들어 봤습니다.

:local username "<dyndns id>";
:local password "<dyndns password>";
:local hostname { "first"="<dyndns hostname1>"; "second"="<dyndns hostname2>" }
:local inetinterface "ether1-gateway";
:local sysdate [/system clock get date];
:local systime [/system clock get time];
:local sysname [/system identity get name];

:local dyndnsForce;
:set dyndnsForce false;

# Print debug info
#:log info ("DynDNS: username = $username");
#:log info ("DynDNS: password = $password");
#:log info ("DynDNS: hostname1 = $hostname->first");
#:log info ("DynDNS: hostname2 = $hostname->second");

# Check if WAN interface is running
:if ([/interface get $inetinterface value-name=running]) do={

# Get the current IP on the WAN interface
    :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address];

# Strip the net mask off the IP address
    :set currentIP [:pick $currentIP 0 [:find $currentIP "/"]];
    :log info ("DynDNS: current WAN IP = $currentIP");

# do loop for all hostname
    :foreach key,value in=$hostname do={

# Get resolved IP for hostname
        :local resolvedIP [:resolve domain-name=$value server=8.8.8.8];
        :log info ("DynDNS: resolved IP for $value = $resolvedIP");

# Determine if dyndns update is needed
        :if (($currentIP != $resolvedIP) || ($dyndnsForce = true)) do={
            :set dyndnsForce false;
            /tool fetch user=$username password=$password url="http://members.dyndns.org/nic/update\?hostname=$value&myip=$currentIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG" dst-path="/dyndns.txt";
            :delay 1;
            :local result [/file get dyndns.txt contents]
            :log info ("DynDNS: update needed for $value")
            :log info ("DynDNS: update result for $value = ".$result)
        } else={
            :log info ("DynDNS: no update needed for $value");
        }

# end of loop for all hostname
    }

# if WAN interface is not running
} else={
    :log info ("DynDNS: $inetinterface is not currently running");
}

mikrotik 으로 스크립트 프로그램 짜는 것도 은근 재밌군요. :)


Á¦¸ñPage 74/103
2017-09   9948   Á¦·Î¼¶
2017-09   10959   Âʺû¸ñ·Ã
2017-09   21837   ½º¸ð¸ð±º
2017-09   15152   °í·Î´Ù
2017-09   10987   Ƽ¸ð´Â±Í¿©¿ö
2017-09   12230   »ì¹Ù
2017-09   10282   ±èÀºÈ£
2017-09   10460   gen81
2017-09   11858   ÆÄÅ°¶ó
2017-08   15037   »ý¸ÆÁÖ
2017-08   10405   ¹öÇÁ¿£Áö´Ï¡¦
2017-08   10056   ³¶¸¸°í³ÉÀÌ
2017-08   11221   »ý¸ÆÁÖ
2017-08   12700   »ø¸®
2017-08   11876   lovin09
2017-08   15770   À¯µ¿ÈÆ
2017-08   13489   Ƽ¸ð´Â±Í¿©¿ö
2017-08   17686   ÇÏÀÌÇÏÀÌ
2017-07   31539   Ȧ¸¯0o0
2017-07   12761   Ȧ¸¯0o0