Possible Duplicate:
Finding the Public IP address in a shell script

I'm currently doing this in a script:

EXTERNAL_IP=`curl -s http://whatismyip.org`

There's got to be a built in linux command or something for this, no?

link|improve this question

33% accept rate
1  
What is your precise definition of "external IP address"? If you mean the IP address that other sites on the Internet see your web requests as coming from (possibly the address of your HTTP proxy), then you are doing it the right way. If that's not what you mean, then maybe not. – David Schwartz Nov 30 '11 at 21:44
feedback

closed as exact duplicate by Zoredache, mailq, Scott Pack, Steven Monday, quanta Dec 1 '11 at 2:35

This question covers exactly the same ground as earlier questions on this topic; its answers may be merged with another identical question. See the FAQ for guidance on how to improve it.

2 Answers

up vote 1 down vote accepted

No, there is no built-in command, and even the command you suggest may not give you what you want if your NAT device is doing anything more complex then a simple masquerading.

link|improve this answer
feedback

If you mean your source address as the rest of the Internet sees it, then the way you're doing it now is pretty much it. A machine behind a firewall or other device doing NAT will be happily unaware of any address translation done further along.

You might find that http://ifconfig.me is a bit cleaner for what you're after - have a look under the Command Line Interface section on the front page.

link|improve this answer
1  
On EC2 you can also query the metadata: curl 169.254.169.254/latest/meta-data/public-ipv4 – Josh Nankin Nov 30 '11 at 21:48
Interesting - will remember that one for future reference! – Andy Smith Nov 30 '11 at 22:00
feedback

Not the answer you're looking for? Browse other questions tagged or ask your own question.