In what manner can a website detect my original IP address, even though I'm using a proxy server? I've noticed this with a few sites. There are four proxy methods I've used:
- Firefox with a proxy setting.
- Python with
mechanize.set_proxies
. - Firefox in a virtual machine with a virtual machine router such that all of the VM's internet goes through a proxy.
- TorBrowser (which uses Firefox as the actual browser).
The following things are behaviors I've noticed that are expected:
- With all of these, if I go to
http://www.whatismyip.com/
, it gives the correct IP address (the IP address of the proxy, not the host computer). whatismyip.com
says "No Proxy Detected" for all of these.
Indeed, it seems like the websites I visit do think my IP is that of the proxy. However, there have been a few weird cases which makes me think that some sites can somehow detect my original IP address. I'm curious how they go about doing that.
- In one situation, visiting a non-US site via Firefox with a non-US proxy, the site literally was able to print my originating IP address (from the US) and deny me access. Shouldn't this be impossible? Visiting the site via the virtual machine with that same non-US proxy, or the TorBrowser with a non-US exit node, though, the site was unable to do so.
- In a similar situation, I was visiting another non-US site from a non-US proxy. If I logged into the site from Firefox within the virtual machine, or from the TorBrowser with a non-US exit node, the site would work properly. However, if I attempted to log in via Firefox with a proxy (the same proxy the virtual machine uses), or with
mechanize
, it would fail to log in with an unrelated error message. - In a third situation, using the
mechanize.set_proxies
option, I overloaded a site with too many requests so it decided to block access (it would purposefully time out whenever I logged in). I thought it might have blocked the proxy's IP address. However, when I ran the code from a different host machine, but with the same proxy, it worked again, for a short while, until they blocked it again. (No worries, I won't be harassing the site any further - I kept running the program as I thought it might have been a glitch on my end, not a block from their end.) Visiting that site with the Firefox+proxy solution from one of the blocked hosts also resulted in the purposeful timeout.
It seems to me that all of these sites, in the Firefox + proxy and mechanize
cases, were able to find out something about the host machine's IP address, whereas in the TorBrowser and virtual machine cases, they weren't. My question is essentially: How are the sites able to gather this information? Another way to ask is: what is different about the TorBrowser and virtual machine cases that prevents the sites from gathering this information?