segunda-feira, 27 de maio de 2013

Como sobreviver às mudanças das regras do DynDNS.

Desde da época da Internet Discada, a cada conexão, seja via dial-up ou via banda larga os ips mudam. Daí, de um outro lugar, você quer conectar na sua máquina, seja para pegar um documento ou realizar uma outra tarefa como um download que ficará pronto assim que chegar em casa. Mas o que fazer para conectar já que precisa saber qual o seu ip previamente. É aí que entram os serviços de DNS Dinâmico. Com o software especifico você define um nome e, a cada conexão, o software atualiza a entrada de dns com este nome específico e não precisa mais se preocupar em decorar o ip. Os mais conhecidos são o DynDNS e o no-ip. O primeiro era gratuito até algum tempo atrás quando removeram esta opção. Mas, para quem é usuário permanecia com a opção gratuita só que, a alguns dias atrás, recebi este e-mail.

Essa notícia não é boa.

Se não entendeu, vai a versão traduzida.

Essa notícia não é boa - em português.

Resumindo, mesmo usando um cliente do DynDNS, ele não será suficiente para manter a conta ativa. É obrigatório se logar no site, pelo menos, uma vez por mês. Se esquecer em 30/31/28(em fevereiro) dias, a conta expira e a sua única reação será essa:


Existe duas soluções viaveis.

1- Migrar para outro serviço tipo o no-ip, que continua gratuito.
2- Criar um script capaz de se logar no account.dyn.com  automaticamente.

 A primeira opção dá muito trabalho reconfigurar mas já surgiu a opção 2 criada por Stuart Shelton que mostrou que é possível deixar tudo no automático e manter a conta do DynDNS ativa.

O script criado é o seguinte.

#!/usr/bin/env bash

LOGIN="substitua pelo seu login"
PASSWORD="substitua pela sua senha"
#UA="Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/0.0.0 (KHTML, like Gecko) Version/0.0.0 Safari/0.0.0"

COOKIES="/tmp/.dynsdns.cookies.txt"
LOGINURL="https://account.dyn.com/entrance/"
POSTURL="$LOGINURL"
CHKURL="https://account.dyn.com/"

(( DEBUG )) && DST="-" || DST="/dev/null"

# Ensure no broken session caching...
[[ -s "$COOKIES" ]] && rm "$COOKIES"
(( DEBUG )) && echo >&2 "DEBUG: Fetching initial headers to pre-load cookies..."
curl -b $COOKIES -c $COOKIES -Ikso "$DST" -A "$UA" --url "$LOGINURL"
(( DEBUG )) && echo >&2 "DEBUG: Fetching UID..."
VALUE="$( curl -b $COOKIES -c $COOKIES -kso - -A "$UA" --url "$LOGINURL" | grep -m 1 "multiform" | cut -d"'" -f 6 )"
(( DEBUG )) && echo >&2 "DEBUG: Read UID as '$VALUE' - posting data..."

curl -b $COOKIES -c $COOKIES -d "username=$LOGIN" -d "password=$PASSWORD" -d "iov_id" -d "multiform=$VALUE" -e "$LOGINURL" -kso "$DST" -A "$UA" --url "$POSTURL"
(( DEBUG )) && echo >&2 "DEBUG: Response received - verifying result..."
curl -b $COOKIES -c $COOKIES -e "$POSTURL" -kso - -A "$UA" --url "$CHKURL" | grep -q "Welcome $LOGIN" && echo "Login successful" || echo >&2 "Login failed"


Deixe no crontab ou no gerenciador de tarefas do Windows(caso tenha instalado o Cygwin) para rodar a cada 15 dias ou, no meu caso, deixe no /etc/cron.weekly que o anacron execute a cada semana. Esta última opção é boa para máquinas que não ficam ligadas 24 horas já que o anacron executa o comando na sua primeira oportunidade após 7 dias.

Espero que isso seja útil até a hora que o pessoal do dyn.com resolver mudar a página.

Tenham uma boa semana.

Nenhum comentário:

Postar um comentário