Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # significa COMENTÁRIO e não é executado pelo processador do mikrotik
- # Crie e defina valores para as variaveis locais. Para atualizar subdomain.example.com, coloque a expressao "subdomain" na variavel subdomain e "example.com" na variavel domain. Para atualizar apenas example.com sem subdominio, coloque "@" na variável subdomain.
- #Declarando e setando as variáveis
- :local password "4873dc93ae69_sua_senha_00e0a7ff46f"
- # :local subdomain "subdomain" ou
- :local subdomain "@"
- :local domain "example.com"
- #Gerando mensagem no log
- :log info "=================================================="
- :log info "ATUALIZAÇÃO DE IP"
- # Capturando o IP Publico (IP de internet) e gerando um arquivo texto "pubIP.txt" na flash do mikrotik. Esse arquivo pode ser visto em Files (usando o Winbox).
- /tool fetch url="http://bot.whatismyipaddress.com/" mode=http dst-path=pubIP.txt
- # Setando o conteudo do arquivo pubIP.txt previamente gravado para a variavel local "currentIP"
- :local currentIP [/file get pubIP.txt contents]
- # Setando para a variavel "prevIP" (ip anterior) o conteudo do arquivo prevIP.txt que DEVE SER COLOCADO NA FLASH DO SEU MIKROTIK PREVIAMENTE. Para fazer isso, crie um arquivo com o nome prevIP.txt no bloco de notas, com o conteudo 0.0.0.0 e envie através do botão UPLOAD na sessão FILES do seu Mikrotik. Isso é fundamental para o funcioamento do script.
- :local prevIP [/file get prevIP.txt contents]
- # Comparando o IP Anterior (prevIP) com o IP Atual (currentIP). Se forem diferentes, faz a atualização
- :if ($prevIP != $currentIP) do={
- # exibe mensagem com o Ip anterior e o Ip Atual
- :log info "IP Anterior:$prevIP"
- :log info "IP Atual:$currentIP"
- # busca novamente o Ip publico e grava no arquivo prevIP.txt
- /tool fetch url="http://bot.whatismyipaddress.com/" mode=http dst-path=prevIP.txt
- # seta para a variável url1 a url que faz a atualização do IP junto ao namecheap
- :local url1 "http://dynamicdns.park-your-domain.com/update\3Fhost=$subdomain&domain=$domain&password=$password&ip=$currentIP"
- # atualiza o ip no dominio registrado no namecheap
- /tool fetch url=($url1) mode=http
- # escreve uma mensagem no log
- :log info "IP Atualizado com sucesso."
- }
- # Pergunta se o IP atual é igual ao IP anterior. Se for, escreve a mensagem que não precisa atualizar. Como eu não sabia como fazer IF -- ELSE no script, fiz assim. Não é a forma mais bonita, mas funciona.
- :if ($prevIP = $currentIP) do={
- :log info "Atualização não é necessária.(IP: $currentIP)"
- }
- # escreve mais uma mensagem no log
- :log info "=================================================="
- # remove o arquivo criado para processar a atualização. Se não excluir, corre-se o risco de ficar um monte de arquivos perdidos na flash do mikrotik, acumulando-se a cada vez que o ip muda. Isso acontece muito em conexões ADSL que são menos estáveis e tendem a mudar o ip com mais frequencia.
- /file remove "update?host=$subdomain&domain=$domain&password=$password&ip=$currentIP"
Add Comment
Please, Sign In to add comment