Wednesday, September 29, 2010

How to check if your dynamic public IP has changed and mail it to you

I think it's really nice to be able to SSH in to my system from work, but I'm too greedy to pay for a static IP, so I made the following script. Please use and modify it as you see fit.
You should add to your crontab so it's ran at a specified interval.

#!/bin/bash

PUBLIC_IP=$(links -dump www.whatismyip.com |grep "Your IP Address Is:" | cut -d":" -f2|tr -d " ")

if [ -f /tmp/publicip ]; then
    KNOWN_IP=$(cat /tmp/publicip)
else
    KNOWN_IP=0
fi

if [ "$PUBLIC_IP" != "$KNOWN_IP" ]; then
    echo $PUBLIC_IP > /tmp/publicip
    SMTPSERVER="smtp.yourisp.tld"
    TO="your@mail.tld"
    FROM="your@mail.tld"
    SUBJECT="IP-change"
    DATA=$(cat /tmp/publicip)
    {
    sleep 1
    echo "HELO $SMTPSERVER"
    sleep 1
    echo "MAIL FROM: $FROM"
    sleep 1
    echo "RCPT TO: $TO"
    sleep 1
    echo "DATA"
    sleep 1
    echo "Subject: $SUBJECT"
    sleep 1
    echo "$DATA"
    echo "."
    sleep 1
    } | telnet $SMTPSERVER 25 >/dev/null 2>&1
else
    exit $1;
fi

No comments:

Post a Comment