Syn rants here. ARGGGHHH!

30Jul/100

Bash script to show WAN and LAN network IPs.

Following is a bash script I wrote to show my lan and wan IPs.
The script will loop every 10 seconds. Seeing as my ISP has a less than desirable up time, I use this to see when I'm finally reconnected.

#!/bin/bash
#  -/oss+:`  `-/o/.
#     `-omMmy+.  +Md/
#        -MMMMMNdhMMMyos+:
#   .:odmMMMMMMMMMMMMMMo
#   .yNMMMMMMMMNyNMMMMMNsoo-
#  odo::NMMMMMM/`s-MMMMMMmMMds/
# -.  `NMMMMMMMd+- -ooo/-..-oNM-   `++ /+`++  //
#     +MMMMMMMMMMMMmhyssss-  `-     .ddh. mdd/yy
#     sMm`oMMMMMMMMMMMMMMNmdy+`      -M.  m+`sMy
#     .M/  `+hNMMMMMMMMMMMMMMMMs`    `.`  .`  ..
#      /`     `.:+oo..-/yMMMMMMMN-
#        -+yo:`          +MMMMMMMN`
#     :yNMN+so  -so`     :hyMMMMMM/
#   /mMMMMMMMNhdMN`   ://+hMMMMMNN:
# `hMMMNdhyydMMMMMMdyssdMMMMMMMN`.
# hMmm-   /osMMMNosNMMMMMMMMdNM+
#`Ms`/  ..-smMNs.oNNho+/++:` sM/
# h/    `:++/- -my-           +s`
#  .          .s`
echo "Press ctrl-c to exit at any time."
while [ 1 ]; do
    WAN_ip_addr=`wget --timeout=10 --tries=2 -qO - http://cfaj.freeshell.org/ipaddr.cgi`
    LAN_ip_addr=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
    echo $(date)
    echo -ne "External IP: "
    if [ -z $WAN_ip_addr ]; then
        echo -e "Disconnected"
    else
        echo -e $WAN_ip_addr
    fi
    echo -ne "Internal IP: "
    if [ -z $LAN_ip_addr ]; then
        echo -e "Disconnected"
    else
        echo -e $LAN_ip_addr
    fi
    if [ -n "$WAN_ip_addr" ]; then
        echo "Found external IP"
        exit 0
    fi
done
exit 0
Filed under: scripts No Comments