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.

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

2011-03-12 - Confoo 2011 presentation
Slides are available from the commandlinefu presentation at Confoo 2011: http://presentations.codeinthehole.com/confoo2011/
2011-01-04 - Moderation now required for new commands
To try and put and end to the spamming, new commands require moderation before they will appear on the site.
2010-12-27 - Apologies for not banning the trolls sooner
Have been away from the interwebs over Christmas. Will be more vigilant henceforth.
2010-09-24 - OAuth and pagination problems fixed
Apologies for the delay in getting Twitter's OAuth supported. Annoying pagination gremlin also fixed.
Hide

Tags

Hide

Functions

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
-5
Get own public IP address

Alternatives

There are 11 alternatives - 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.

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 286 weeks and 2 days ago

Doesn't work, however

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

does work.

Comment by tebeka 286 weeks and 2 days ago

The same with wget:

wget -O - -q myip.dk |grep '"Box"' | egrep -o '[0-9.]+'
Comment by PabloX 286 weeks and 2 days 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 286 weeks and 2 days 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 286 weeks 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 154 weeks and 4 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 154 weeks and 4 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 18 weeks and 6 days ago

Your point of view

You must be signed in to comment.

Related sites and podcasts