Mikrotik RouterOS¿ë DNSEver ¾÷µ¥ÀÌÆ® ½ºÅ©¸³Æ®
userId는 dnsever 아이디
authCode는 dnsever 업데이트용 authCode
hosts는 업데이트할 호스트. 여러개일 때 콤마로 구분합니다. 빈 공백은 넣지 마세요.
gatewayInterface는 공인 아이피를 받는 인터페이스입니다. 보통 ether1-gateway이므로 그대로 두면됩니다.
수정하시고 스케줄러에 몇분 간격으로 실행되게끔 넣어주면 됩니다.
=============================================================================
:local userId "myUserId";
:local authCode "myAuthCode";
:local hosts [:toarray "mydomain1.com,mydomain2.com"];
:local gatewayInterface "ether1-gateway";
:global previousIpAddress;
:if ([/interface find where name=$gatewayInterface running=yes] != "") do={
# Get the current IP on the interface
:local currentIpAddress [/ip address get [find interface="$gatewayInterface" disabled=no] address];
# Strip the net mask off the IP address
:for i from=( [:len $currentIpAddress] - 1) to=0 do={
:if ( [:pick $currentIpAddress $i] = "/") do={
:set currentIpAddress [:pick $currentIpAddress 0 $i];
}
}
:if ($currentIpAddress != $previousIpAddress) do={
:log info "ddns: Current ip address ($currentIpAddress) is not equal to previous ip address, update needed";
:set previousIpAddress $currentIpAddress;
:local hostQueryString "";
:foreach host in=$hosts do={
:if ([:len $hostQueryString] > 0) do={
:set hostQueryString ($hostQueryString . "&");
}
# %5B is percent encoded hex for '['. %5D is percent encoded hex for ']'.
:set hostQueryString ($hostQueryString . "host%5B$host%5D=$currentIpAddress");
}
# The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
/tool fetch url="http://dyna.dnsever.com/update.php\3F$hostQueryString" user=$userId password=$authCode;
:log info "ddns: Hosts updated on DNSEver with ip address ($currentIpAddress).";
}
} else={
:log error "ddns: Interface ($gatewayInterface) is invalid or not currently running.";
}
Pain is your friend.
»õ·Î¿î ½ºÅ©¸³Æ® °¨»çÇÕ´Ï´Ù^^
http://2cpu.co.kr/bbs/board.php?bo_table=QnA&wr_id=377399
Àúµµ À̹ø¿¡ ½ºÅ©¸³Æ® º¯°æÇß³»¿ä...