58 lines
1.3 KiB
Bash
Executable File
58 lines
1.3 KiB
Bash
Executable File
#/bin/sh
|
|
|
|
##########
|
|
# CONFIG #
|
|
##########
|
|
|
|
if [ -f dyndns.env ]
|
|
then
|
|
export $(cat dyndns.env | sed 's/#.*//g' | xargs)
|
|
else
|
|
echo "Error, dyndns.env doesn't exist"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$HOST" ] || [ -z "$LOGIN" ] || [ -z "$PASSWORD" ] || [ -z "$PATH_LOG" ]
|
|
then
|
|
echo "Error, please check your configuration in dyndns.env"
|
|
exit 2
|
|
fi
|
|
|
|
###########
|
|
# GET IPs #
|
|
###########
|
|
|
|
HOST_IP=`dig A +short $HOST`
|
|
|
|
# Flag 4 stand for IPv4
|
|
CURRENT_IP=`curl -s4 ifconfig.io`
|
|
|
|
#######
|
|
# LOG #
|
|
#######
|
|
|
|
echo "====================================" >> $PATH_LOG
|
|
echo "Run dyndns - "$(date +"%D, %T") >> $PATH_LOG
|
|
echo "Domain : $HOST" >> $PATH_LOG
|
|
echo "Current IP : $CURRENT_IP" >> $PATH_LOG
|
|
echo "Host IP : $HOST_IP" >> $PATH_LOG
|
|
|
|
###############
|
|
# DO THE WORK #
|
|
###############
|
|
if [ -z "$CURRENT_IP" -o -z "$HOST_IP" ]
|
|
then
|
|
echo "No IP retrieved" >> $PATH_LOG
|
|
else
|
|
if [ "$HOST_IP" != "$CURRENT_IP" ]
|
|
then
|
|
echo "IP has changed" >> $PATH_LOG
|
|
RES=`curl -s --user "$LOGIN:$PASSWORD" "http://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP"`
|
|
echo "Result request dynHost" >> $PATH_LOG
|
|
echo "$RES" >> $PATH_LOG
|
|
echo "IP changed for $HOST, new IP is $CURRENT_IP"
|
|
else
|
|
echo "IP has not changed" >> $PATH_LOG
|
|
fi
|
|
fi
|