Whether you are in it just for a bit of geeky fun, or are seriously wanting to know the answer, how do you find out the IP address for a website? Today’s SuperUser Q&A post looks at the answer, and how to know if more than one website is bound to the same IP address.
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
SuperUser reader JqueryLearner wants to know how to find out what the IP address of a website is:
If I want to know the IP address of a website, then one way is to ping the website. For example, if I want to know the IP address of google.com, then I can ping it via the command prompt.
So 184.108.40.206 is the IP address for Google. But suppose I want to know the IP address of superuser.com, and if I use the same method, then I get 220.127.116.11 as the IP address. If I put this IP address in the browser as an URL, then my browser does not take me to superuser.com.
Can anyone tell me how to get the correct IP address?
So what does JqueryLearner need to do in order to find out the correct IP addresses for websites?
SuperUser contributors Paul and lesca have the answer for us. First up, Paul:
Your starting assumption is that all websites can be accessed via their IP address directly. This is not the case.
In many cases (I’d venture most cases), the website that is presented at an IP address is dependent on the website name you are requesting. For example, if you request superuser.com, you will first resolve this to an IP address, then make a request to the IP address for a specific webpage. It looks like this:
The first part says “get the first page of the site”, and the second says “for the website superuser.com”.
This is why a single web server can host multiple websites using a single IP address. In the case of the Stack Exchange sites, any or all of them can be on each of their servers, and you’ll get the one you ask for. If you just put in an IP address, you won’t get any of them, because you are not telling the web server which of the many websites you are after. In these cases, it may have a “default” website defined, or just return an error.
If you are trying to work around an issue with your DNS provider, then one option you have is to modify your hosts file so that you are resolving addresses yourself, rather than have an external party do it for you.
So for example, if you edit:
You can enter:
This way, if you type superuser.com into your browser, it will look in the hosts file, and resolve the IP address, but then still pass through the name of the website to the server it connects to.
Followed by the answer from lesca:
To get the IP address of a website, the best way is to use the nslookup command. For example:
If you wonder why you cannot visit SuperUser directly using the IP address (18.104.22.168), it is because of the settings for the web server. The SuperUser site disallows user visits via IP address. Probably it is because the IP address is binding to other web sites (say stackoverflow.com). If you use “IP reverse lookup” tool, you can find its binding sites.
One more lookup proves I am right:
Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.