Home » Development » Geektool » Internal/External IP

All that you will need to edit is the “device” variable for which you want info.

Macbook/Macbook Air/Macbook Pro/iMac
en0 – Ethernet
en1 – Airport

Mac Pro
en0 – Ethernet (left side if looking at the back)
en1 – Ethernet (right side if looking at the back)
en2 – Airport

Update (July 29, 2008):
Newest version automatically searches all network devices, and pulls internal IP based off of the highest ranking device (en0, en1, then en2) that actually has an internal IP address.

Sample Output:

Internal: 192.168.1.100
External: Unknown

Geektool Shell Entry:

bash /path/to/internal/external/ip.bash

Code:

#!/bin/bash
 
# get internal IP
devices=("en2" "en1" "en0")
 
for((i=0; i<${#devices[@]}; i++));
do
	internals[$i]=`ifconfig ${devices[$i]} | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'`
	if [ "${internals[$i]}" != "" ]
	then
		internal=${internals[$i]}
	fi
done
 
# get external IP
external=`curl --silent http://checkip.dyndns.org | awk '{print $6}' | cut -f 1 -d "<"`
 
# display internal IP
if [ "$internal" != "" ]
then
    echo "Internal: $internal"
else
    echo "Internal: Unknown"
fi
 
# display external IP
if [ "$external" != "" ]
then
    echo "External: $external"
else
    echo "External: Unknown"
fi

Respond

You must be logged in to post a comment.