O'Reilly logo

bash Cookbook by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Finding My IP Address

Problem

You need to know the IP address of the machine you are running on.

Solution

There is no good way to do this that will work on all systems in all situations, so we will present several possible solutions.

First, you can parse output from ifconfig to look for IP addresses. These examples will either return the first IP address that is not a loopback or nothing if there are no interfaces configured or up.

	# cookbook filename:finding_ipas
	
	# IPv4 Using awk, cut and head
	$ /sbin/ifconfig -a | awk '/(cast)/ { print $2 }' | cut -d':' -f2 | head -1

	# IPv4 Using Perl, just for fun
	$ /sbin/ifconfig -a | perl -ne 'if ( m/^\s*inet (?:addr:)?([\d.]+).*?cast/ ) { print
	qq($1\n); exit 0; }'


	# IPv6 Using awk, cut and head
	$ /sbin/ifconfig -a | egrep 'inet6 addr: |address: ' | cut -d':' -f2-| cut -d'/' -f1
	| head -1 | tr -d ' '

	# IPv6 Using Perl, just for fun
	$ /sbin/ifconfig -a | perl -ne 'if ( m/^\s*(?:inet6)? \s*addr(?:ess)?: ([0-9A-Fa-f:
	]+)/ ) { print qq($1\n); exit 0; }'

Second, you can get your hostname and resolve back to an IP address. This is often unreliable because today's systems (especially workstations) might have incomplete or incorrect hostnames and/or might be on a dynamic network that lacks proper reverse lookup. Use at your own risk and test well.

	$ host $(hostname)

Third, you may be more interested in your host's external, routable address than its internal RFC 1918 address. In that case you can use an external host such as http://www.ippages.com/ or "FollowMeIP" ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required