saviomarques
(usa CentOS)
Enviado em 07/11/2015 - 11:49h
Bom dia.
Amigo, também tive muitos problemas com Scripts de DDNS, com mikrotik, mais aos poucos fui entendendo cada Script e que cada versão pode funcionar de um jeito.
Abaixo, vou lhe passar um Script que funciona bem das versão 6.0 até a versão 6.30, e não me deu problemas, ele pode ser usando para DynDNS, DDNS, No-ip e alguns outros que não testei. caso seja necessário crie um conta em algum desses serviços e teste neste script.
Se possível não use Crtl+c e Crtl+v, tende digitar as linhas, pois durante o processo de copia e cola, as linhas podem ser quebradas de forma errada.
Caso resolva, da uma curtida e marca com resolvido.
Abrçs...
<-------- * * * ------>
# Definindo as Variáveis
:local username "
Aqui coloque seu usuário"
:local password "
Aqui deve estar sua senha de usuário"
:local hostname "
Aqui deve estar seu host criado no site < minhacasa,dvrdns,org>"
:global systemname [/system identity get name]
:if ($systemname = "Site1" ) do= {
:set hostname "yourdomain1.dyndns.org"
}
:if ($systemname = "Site2" ) do= {
:set hostname "yourdomain2.dyndns.org"
}
:if ($systemname = "Site3" ) do= {
:set hostname "yourdomain3.dyndns.org"
}
:global dyndnsForce
:global previousIP
# Mostrando as informações no Log
:log info ("UpdateDynDNS: username = $username")
:log info ("UpdateDynDNS: password = $password")
:log info ("UpdateDynDNS: hostname = $hostname")
:log info ("UpdateDynDNS: previousIP = $previousIP")
# Informando seu ip para o provedor DNS
/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 "</body>" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "UpdateDynDNS: currentIP = $currentIP"
# Atualizando o ip, se você desejar mais informações acesse:
http://www.dyndns.com/developers/specs/syntax.h>
:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
:set dyndnsForce false
:set previousIP $currentIP
/tool fetch user=$username password=$password mode=http address="members.dyndns.org" src-path=>
:local result [/file get dyndns.txt contents]
:log info ("UpdateDynDNS: Dyndns update needed")
:log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
:put ("Dyndns Update Result: ".$result)
} else={
:log info ("UpdateDynDNS: No dyndns update needed")
}