Hide

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again.

Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.


If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/

Get involved!

You can sign-in using OpenID credentials, or register a traditional username and password.

First-time OpenID users will be automatically assigned a username which can be changed after signing in.

Universal configuration monitoring and system of record for IT.
Hide

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for:

Hide

News

May 19, 2015 - A Look At The New Commandlinefu
I've put together a short writeup on what kind of newness you can expect from the next iteration of clfu. Check it out here.
March 2, 2015 - New Management
I'm Jon, I'll be maintaining and improving clfu. Thanks to David for building such a great resource!
Hide

Top Tags

Hide

Functions

Hide

Credits

Get own public IP address

Terminal - Get own public IP address
wget -qO- whatismyip.org
2009-03-27 10:57:57
User: kobayashison
Functions: wget
-6
Get own public IP address

Alternatives

There is 1 alternative - vote for the best!

Terminal - Alternatives
curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+'
2009-10-26 09:15:31
User: hugin
Functions: grep
6
wget http://ipecho.net/plain -O - -q ; echo
2013-10-02 21:18:40
Functions: wget
1

Returns your external IP address to the command line using only wget

curl -s http://wtfismyip.com/text
2013-06-27 10:53:54
User: m3adow
0

Plain Text Ip Output, independent of Layout change.

$ wget --no-check-certificate -q checkip.dyndns.org -O index.html && cat index.html|cut -d ' ' -f 6 | cut -d '<' -f 1
2014-05-12 07:10:29
User: Superkikim
Functions: cat cut wget
0

This is the command line I use to get my IP address in order to update my zoneedit account. Full script on my blog http://akim.sissaoui.com/linux-attitude/script-de-mise-a-jour-ddns-zoneedit-com-en-bashsh/

Know a better way?

If you can do better, submit your command here.

What others think

Doesn't work, however

curl -s myip.dk |grep '"Box"' | egrep -o '[0-9.]+'

does work.

Comment by tebeka 322 weeks ago

Doesn't work, however

curl -s myip.dk |grep '"Box"' | egrep -o '[0-9.]+'

does work.

Comment by tebeka 322 weeks ago

The same with wget:

wget -O - -q myip.dk |grep '"Box"' | egrep -o '[0-9.]+'
Comment by PabloX 322 weeks ago

You guys are using the wrong site :-P

wget -qO- whatismyip.org

It doesn't have any HTML or markup, just a plain ip.

try

ping $( wget -qO- whatismyip.org )

Will work flawlessly.

If you find yourself using a external IP a lot, consider instead using a dynamic DNS client like http://no-ip.com or a similar service. Free, east setup, and they have open source daemons to update it automatically. This gives you an actual named URL, and you won't ever need to use this command. On ubuntu, run

sudo aptitude search dyndns-client

Or search for "dynamic DNS" in your package manager to find some sites with supported services.

Comment by clockworkavian 322 weeks ago

@clockworkavian: Thanks for the tip about whatismyip.org!

I don't want to install/use dyndns-client every time I need an IP in a script...

Comment by kobayashison 321 weeks and 5 days ago

Yep... 1st one works like a charm. No grep or egrep needed. Just Ip plain text. It's perfect. You don't rely on the web designer... Because on the checkip one, if the web designer decide to do any change to the page, it might not work anymore. That's exactly what happened to the propose command on lifehacker, where it is proposed to use myip.dk. This site change the page layout, and bam... The command is useless.

Comment by Superkikim 190 weeks and 2 days ago

Regarding dynamic DNS update, that is exactly why I am looking for such command.

I use ZoneEdit.com, and I have no idea when my ISP changes my IP. I made a script to update the zone every 5 minutes. But I've been blocked by zoneedit.com because I'm making to many updates, even if the site can tell "no update needed" they don't like people "spamming" with update requests.

I will now add a command to check by myself if the IP changed every 1 or 5 minutes, and if it did, then I will update the zone at zoneedit.com. Then, every request will be for a good reason :-) This will also show me at what frequency the ISP changes my IP address.

Comment by Superkikim 190 weeks and 2 days ago

This is the command I use in my home made ddns script to update zoneedit.com

wget --no-check-certificate -q checkip.dyndns.org -O index.html && cat index.html|cut -d ' ' -f 6 | cut -d '<' -f 1

The script is here http://akim.sissaoui.com/linux-attitude/script-de-mise-a-jour-ddns-zoneedit-com-en-bashsh/ (copy paste). The article is in french but hey... google translate is your best friend.

Comment by Superkikim 54 weeks and 5 days ago

Your point of view

You must be signed in to comment.