I'm looking for a way to get my IP address using the command prompt in Linux. I know when you type "ifconfig" you can get your local IP address (i.e. 192.168.0.103), but I'm looking for my IP address that I get from my ISP. How can I get this from Linux without having to visit some website?
3 Answers
If your machine is assigned a local IP address, it may not know your public-facing address. You can query a server not on your local network to discover your public-facing address.
$ curl whatismyip.org
-
1if you get a proxy ip address (IE, a wrong one) try checkip.dyndns.com:8245– Journeyman Geek ♦Commented Apr 4, 2010 at 2:40
-
The question specifically said "without having to visit some website". Commented Jan 7, 2013 at 6:22
If your computer is on e.g. a corporate LAN with an address-translating firewall there is unfortunately no information on your computer about the externally visible address. For all your computer knows it has a local IP (e.g. 192.168.0.103) that can be used to connect to any host on the Internet. The address-translating firewall is completely transparent from your computer's point of view.
The only way is to use an external "observer" such as whatismyip.org to help. If you don't like having to access it through a full web browser curl is an alterantive as pointed out by Samuel K
Add this to your ~/.bashrc file on Linux or ~/.bash_profile on Mac.
alias myip='wget http://automation.whatismyip.com/n09230945.asp -O - -q ; echo'
Then run
source ~/.bashrc
or:
source ~/.bash_profile
Source will activate the changes you made to your bash file. It's only required once.
Now type 'myip' from command line, and you get the public IP address.
:# myip
23.23.133.111