即使我使用代理服务器,网站也可以通过什么方式检测到我的原始 IP 地址?我在一些网站上注意到了这一点。我使用了四种代理方法:
- 带有代理设置的 Firefox。
- Python 与
mechanize.set_proxies. - Firefox 在带有虚拟机路由器的虚拟机中,这样所有虚拟机的互联网都通过代理。
- TorBrowser(使用 Firefox 作为实际浏览器)。
以下是我注意到的预期行为:
- 有了所有这些,如果我转到
http://www.whatismyip.com/,它会给出正确的 IP 地址(代理的 IP 地址,而不是主机的 IP 地址)。 whatismyip.com所有这些都说“未检测到代理”。
事实上,我访问的网站似乎确实认为我的 IP 是代理的 IP。但是,有一些奇怪的情况让我认为某些网站可以以某种方式检测到我的原始 IP 地址。我很好奇他们是如何做到这一点的。
- 在一种情况下,通过 Firefox 使用非美国代理访问非美国站点,该站点实际上能够打印我的原始 IP 地址(来自美国)并拒绝我访问。这不应该是不可能的吗?但是,通过具有相同非美国代理的虚拟机或具有非美国出口节点的 TorBrowser 访问该站点,该站点无法这样做。
- 在类似的情况下,我正在通过非美国代理访问另一个非美国站点。如果我从虚拟机中的 Firefox 或使用非美国出口节点的 TorBrowser 登录该站点,该站点将正常运行。但是,如果我尝试使用代理(与虚拟机使用的代理相同)或使用代理通过 Firefox 登录
mechanize,它将无法登录并显示不相关的错误消息。 - 在第三种情况下,使用该
mechanize.set_proxies选项,我使一个请求过多的站点超载,因此它决定阻止访问(每当我登录时它都会故意超时)。我认为它可能阻止了代理的 IP 地址。但是,当我从另一台主机上运行代码,但使用相同的代理时,它再次工作了一段时间,直到他们再次阻止它。(不用担心,我不会再骚扰该站点 - 我一直运行该程序,因为我认为这可能是我的故障,而不是他们的障碍。)使用 Firefox+代理解决方案访问该站点从被阻止的主机之一也导致有目的的超时。
在我看来,所有这些站点,在 Firefox + 代理和mechanize案例中,都能够找到有关主机 IP 地址的信息,而在 TorBrowser 和虚拟机案例中,它们却没有。我的问题本质上是:网站如何收集这些信息?另一种问法是:TorBrowser 和阻止网站收集这些信息的虚拟机案例有什么不同?