Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- function valid_ip()
- {
- local ip=$1
- local stat=1
- if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
- OIFS=$IFS
- IFS='.'
- ip=($ip)
- IFS=$OIFS
- [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
- && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
- stat=$?
- fi
- return $stat
- }
- IP=`dig +short myip.opendns.com @resolver1.opendns.com`
- DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- LOGFILE="$DIR/update-ip.log"
- IPFILE="$DIR/update-ip.ip"
- if ! valid_ip $IP; then
- echo "Invalid IP address: $IP" >> "$LOGFILE"
- exit 1
- fi
- if [ ! -f "$IPFILE" ]
- then
- touch "$IPFILE"
- fi
- if grep -Fxq "$IP" "$IPFILE"; then
- # code if found
- echo "IP is still $IP. Exiting" >> "$LOGFILE"
- exit 0
- else
- echo "IP has changed to $IP" >> "$LOGFILE"
- TMPFILE=$(mktemp /tmp/temporary-file.XXXXXXXX)
- cat > ${TMPFILE} << EOF
- {
- "Comment":"$COMMENT",
- "Changes":[
- {
- "Action":"UPSERT",
- "ResourceRecordSet":{
- "ResourceRecords":[
- {
- "Value":"$IP"
- }
- ],
- "Name":"$RECORDSET",
- "Type":"$TYPE",
- "TTL":$TTL
- }
- }
- ]
- }
- EOF
- # Do the actual send to google script and tell them the new IP address
- echo file://"$TMPFILE" >> "$LOGFILE"
- echo "" >> "$LOGFILE"
- rm $TMPFILE
- fi
- # All Done - cache the IP address for next time
- echo "$IP" > "$IPFILE"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement