Автоматическое продление бесплатных сервисов в DynDNS

Подключение к Internet у меня организовано на базе беспроводного маршрутизатора с модернизированной энтузиастами прошивкой: http://code.google.com/p/wl500g/ Провайдер автоматически выделяет реальный IP-адрес, но он меняется при каждом новом подключении. Периодически возникает необходимость получить доступ к своему домашнему оборудованию извне. Для этих целей услуга статичного IP-адреса несколько избыточна, а вот возможностей, предоставляемых DynDNS, вполне достаточно. Но с последним есть одна неприятность: пользователи бесплатных сервисов должны регулярно отмечаться в своем личном кабинете, иначе их учетная запись будет удалена. Ниже предлагается небольшой скрипт, который позволяет автоматизировать этот процесс. Написано он на BASH, поскольку вышеупомянутая прошивка от энтузиастов построена на базе ОС Linux.

#!/bin/bash
########################################################################
#
# dyndnslogin
# Automate login to prevent account expiration
#
# Based on:
# https://raw.github.com/mindfuckup/Scripts/master/dyndnslogin
# http://www.stoufis.gr/blog/topics/2010
# http://emanuelduss.ch/2013/05/zwingender-monatlicher-login-bei-dyndns-org-automatisieren/
#
########################################################################

########################################################################
# DynDNS Settings
USERNAME="XXXXXXXX"
PASSWORD="XXXXXXXX"

PROGNAME=dyndnslogin
COOKIE=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_cookie_XXXXX`
OUTPUT=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_output_XXXXX`
USERAGENT="Mozilla/5.0"

########################################################################
# Main

MULTIFORM=`curl -s --insecure -A $USERAGENT -c $COOKIE https://account.dyn.com \
| awk -F\' '/multiform/{ print $6 }'`

curl -s --insecure --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \
--data "username=$USERNAME&password=$PASSWORD&iov_id=&submit=Log+in&multiform=$MULTIFORM" \
https://account.dyn.com/

echo "========================================================================"
date "+%Y-%m-%d %H:%M:%S"

if grep -i -E "(Welcome|Hi).*$USERNAME" $OUTPUT > /dev/null 2>&1
then
echo "Login successful"
logger "dyndnslogin: Login successful"
else
echo "Login failed"
logger "dyndnslogin: Login failed"
FAILED="true"
fi

echo "========================================================================"

rm $COOKIE
rm $OUTPUT

if [ "$FAILED" = "true" ]
then
exit 1
fi

# EOF

Похожие публикации

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>