Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ###############
- # DEFINITIONS #
- ###############
- FILE=/tmp/.mailMyIP
- DATE=`date +"%F %H:%M:%S"`
- ADDRS="[email protected]"
- MSMTP=`which msmtp`
- PING=`which ping`
- SED=`which sed`
- PRINTF=`which printf`
- IFCONFIG=`which ifconfig`
- ####################
- # FUNCTIONS: BEGIN #
- ####################
- MSG() {
- BODY="Subject: NAVI has booted, check your IP\nDate: $DATE\n\nNAVI was booted at $DATE\nNAVI IP=$IP\n"
- echo "$BODY" > $FILE
- echo "$BODY" | $MSMTP -C /root/.msmtprc $ADDRS
- }
- mailMyIp() {
- if [ -f $FILE ]; then
- OLDIP=`cat $FILE | sed '/IP=/!d;s/.*=//g'`
- [ "$IP" != "$OLDIP" ] && MSG
- else
- MSG
- fi
- }
- OK() {
- echo -e "\033[60G[ \033[32;1mOK\033[0m ]"
- }
- FAIL() {
- echo -e "\033[60G[ \033[31;1mFAIL\033[0m ]"
- }
- GET_IP() {
- IP=`curl -s http://myip.com.br/index2.php | sed '/Seu\ IP/!d;s/.*\IP://g;s/<.*//g;s/\ //g'`
- echo -n $IP
- }
- TEST_INET() {
- ETH0=`$IFCONFIG eth0 | sed '/inet\ /!d;s/.*r://g;s/\..*$//g'`
- if [ $ETH0 -ne 192 ]; then
- echo "Network not available"
- exit -1
- else
- printf "%b" "Testing your Internet Connection:"
- PING_COUNT=`$PING -l3 -w1 173.194.34.104 2> /dev/null | $SED '/rec/!d;s/.*ted,\ //g;s/\ .*//g'`
- fi
- }
- ##################
- # FUNCTIONS: END #
- ##################
- case "$1" in
- 'start')
- TEST_INET
- if [ $PING_COUNT -eq 0 ]; then
- FAIL
- else
- OK
- echo -n " Retrieving external IP: "
- GET_IP
- if [ -n "$IP" ]; then
- OK
- echo -en " Retrieving IP from gmail: "
- NAVI_IP=`$HOME/bin/naviip`
- if [ -n "$NAVI_IP" ]; then
- echo -n "$NAVI_IP"
- OK
- else
- FAIL
- fi
- if [ "$IP" != "$NAVI_IP" ]; then
- echo -en " Mailing the new IP to $ADDRS"
- MSG
- OK
- else
- echo " Nothing to do."
- fi
- else
- FAIL
- fi
- fi
- ;;
- 'check')
- TEST_INET 2&>1 /dev/null
- if [ $PING_COUNT -ne 0 ]; then
- GET_IP 2&>1 /dev/null
- if [ -n "$IP" ]; then
- NAVI_IP=`/usr/local/bin/naviip`
- [ "$IP" != "$NAVI_IP" ] && MSG
- fi
- fi
- ;;
- *)
- echo "usage $0 {start|check}"
- esac
Advertisement
Add Comment
Please, Sign In to add comment