Veja como podemos atualizar um IP dinâmico no No-IP. Utilizando este script, podemos atualizar o endereço IP de uma interface PPPoE do Mikrotik no serviço de DNS dinâmico No-IP vinculando o IP da interface a um host do serviço, sempre que ocorrer alteração do endereço IP na interface monitorada.
O script pode, por exemplo, ser agendado para execução a cada 1 minuto (precisa configurar um scheduler).
Sempre que executado, o script verificará se o endereço IP da interface monitorada mudou. Se o endereço IP tiver sido alterado, será enviado o novo IP para o No-IP e algumas linhas de logs serão escritas.
Caso ao executar o script o IP da interface seja o mesmo IP anterior, o script será encerrado sem realizar nenhuma atividade.
SEGUE SCRIPT:
# Atualizacao automatica do No-IP
# Alterar as informacoes desta secao conforme os dados do seu login e host no-ip
:local noipuser "usuario"
:local noippass "senha"
:local noiphost "nomedomeuhost.no-ip.org"
# Nome da interface que devera ter o endereco IP vinculado ao host do no-ip
:local inetinterface "pppoe-out1"
:global previousIP
:if ([/interface get $inetinterface value-name=running]) do={
# Obtendo informacao sobre o IP atual
:local currentIP [/ip address get [find interface="$inetinterface" disabled=no] 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: IP atual $currentIP diferente do IP anterior, atualizando."
:set previousIP $currentIP
# Enviando o novo IP via http
:log info "No-IP: Atualizando o host $noiphost"
/tool fetch mode=http user=$noipuser password=$noippass url="http://dynupdate.no-ip.com/nic/update3Fhostname=$noiphost&myip=$currentIP" keep-result=no
:log info "No-IP: Host $noiphost atualizado no No-IP = $currentIP"
}
} else={
:log info "No-IP: $inetinterface desconectada. Impossivel atualizar No-IP."
}
Vídeo prático em detalhes: