#!/bin/sh
#########################################################
#
# This scripts checks for change in the client IP address
# If the IP was changed
#
# 1. calls the myip.org update script MOC-lynx for
# updating the dynamic DNS at myhostname.myip.org
# 2. uploads the new IP to an external servr using CGI
#
# Usefull if using modem dial up or DHCP assigned IP
# from cable modem service. Go to myip.org to register
# for free dynamic dns service and download MOC-lynx script
#
# Craetes the following files
#
# 1. oldip.txt - the last IP of the client
# 2. newip.txt - the new IP of the client
# 3. logip.txt - any error messages
#
# Run the script as a cronjob maybe once every hour/day ?
#
# $crontab -e
# 1 1 * * * /home/foo/dynamo/dynamo.sh 1> /dev/null 2>/dev/null
#
# kishan@hackorama.com www.hackorama.com December 2001
#
##########################################################
# this is where the scripts and config files are
# MOC-lynx , MOC-lynx.conf and this script dynamo.sh
BASE=/home/foo/dynamo
# The URL for the CGI script on remote server
IPCGI="http://www.foo.com/cgi-bin/dynamo.cgi?ip="
# change if you have multiple interfaces
INTERFACE=eth0
# change if you have installed lynx in a non standard location
LYNX=/usr/bin/lynx
####### NORMALLY NO CHANGES BEYOND THIS ##################
UPDATEIP=$BASE/MOC-lynx
OLDFILE=$BASE/oldip.txt
NEWFILE=$BASE/newip.txt
LOGFILE=$BASE/logip.txt
OLDIP=`cat $OLDFILE`
NEWIP=`/sbin/ifconfig $INTERFACE | /usr/bin/awk '/inet /{print $2}' | tr -d '[:alpha:]: '`
echo $NEWIP > $NEWFILE
if [ $OLDIP = $NEWIP ]
then
## echo "SAME OLD $NEWIP $OLDIP" ##
exit
else
echo "----------------------------" >> $LOGFILE
date >> $LOGFILE
if [ $NEWIP = ERROR ]
then
echo "ERROR GETTING IP" >> $LOGFILE
exit
fi
cp $NEWFILE $OLDFILE
echo "$NEWIP" >> $LOGFILE
OK=`$LYNX $IPCGI$NEWIP -dump`
if [ $OK = OK ]
then
echo "CGI: $OK" >> $LOGFILE
else
echo "CGI FAIL: $OK" >> $LOGFILE
fi
## CALL THE MYIP.ORG SCRIPT MOC-lynx ##
RESULT=`$UPDATEIP`
SAMEIP=`echo $RESULT | grep identical | wc -l`
if [ $SAMEIP = 1 ]
then
echo "MYIP.ORG SAYS ITS SAME" >> $LOGFILE
else
echo "MYIP.ORG UPDATE VERBOSE" >> $LOGFILE
fi
echo "$RESULT" >> $LOGFILE
fi
syntax highlighted by Code2HTML, v. 0.9