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. Ie, 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:
GET / HTTP/1.1
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 webserver 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 webserver 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.