Script No-IP para Mikrotik
# Actualización automatica de DNS con servicio de No-IP
#--------------- Cambia los siguientes valores para las variables ------------------
:local noipuser ""
:local noippass ""
:local noiphost ""
:local inetinterface ""
#--------------------------------YA No cambies ningún archivo-------------------------
:global previousIP [:resolve $noiphost];
:if ([/interface get $inetinterface value-name=running]) do={
# Get the current IP on the interface
:local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address]
# Strip the net mask off the IP address
:for i from=( [:len $currentIP] - 1) to=0 do={
:if ( [:pick $currentIP $i] = "/") do={
:set currentIP [:pick $currentIP 0 $i]
}
}
:if ($currentIP != $previousIP) do={
:log info "No-IP: La actual IP $currentIP no es igual a la anterior, necesita actualizar!"
:set previousIP $currentIP
# The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
:local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP"
:local noiphostarray
:set noiphostarray [:toarray $noiphost]
:foreach host in=$noiphostarray do={
:log info "No-IP: Se envio actualizacion para el siguiente Host $host"
/tool fetch url=($url . "&hostname=$host") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt")
:log info "No-IP: El siguiente Host $host fue actualizado en No-IP con la siguiente direccion IP $currentIP"
}
} else={
:log info "No-IP: La anterior IP $previousIP es igual que la actual, no es necesario actualizar"
}
} else={
:log info "No-IP: No fue necesario actualizar la siguiente Interface: $inetinterface esta aun no ha cambiado."
}
Freddy Perez
Computacion y Sistemas
freperez98@gmail.com
0426-530.95.11
Aragua Venezuela