我正在尝试通过python使用代理,以便从不同的特定IP地址登录网站。但是,某些网站似乎可以检测到原始(主机)IP地址。我已经调查了一下这个问题,这就是我找到的。
我尝试过四种代理方法:
mechanize.set_proxies
。对于前三个我使用相同的代理。 Tor选项仅用于其他测试,而不是通过我自己的代理。以下是我注意到的预期行为:
http://www.whatismyip.com/
,它会提供正确的IP地址(代理的IP地址,而不是主机)。whatismyip.com
说“所有这些都没有检测到代理”。事实上,我访问的网站似乎认为我的IP是代理的IP。但是,有一些奇怪的案例让我觉得有些网站能以某种方式检测我的原始IP地址。
mechanize
通过Firefox登录,则无法使用无关的错误消息登录。mechanize.set_proxies
选项,我重载了一个请求太多的网站,因此它决定阻止访问(每当我登录时它都会故意超时)。我以为它可能阻止了代理的IP地址。但是,当我从不同的主机运行代码但使用相同的代理时,它会再次运行一段时间,直到它们再次阻止它为止。 (不用担心,我不会再骚扰网站了 - 我重新运行程序,因为我认为这可能是我的结果,而不是他们的结束。)使用Firefox +代理访问该网站来自其中一个被阻止的主机的解决方案也导致了有目的的超时。在我看来,在Firefox +代理和mechanize
案例中,所有这些网站都能够找到有关主机IP地址的信息,而在TorBrowser和虚拟机情况下,它们并不是“T。
网站如何收集这些信息?有关阻止网站收集此信息的TorBrowser和虚拟机案例有何不同?而且,我如何实现我的python脚本,以便我通过代理访问的站点无法检测到主机/主机的IP地址?
答案 0 :(得分:2)
代理可能会在X-Forwarded-For
HTTP标头中报告您的真实IP地址,但如果是这样,我很惊讶WhatIsMyIP网站没有告诉您。
如果您是第一次直接访问非美国网站,然后再次使用该代理,那么该网站可能会在您首次访问时在您的浏览器中设置cookies,该网站甚至可以识别您的网站在您的IP地址更改后。这可以解释您在浏览器实例之间观察到的差异。
(我注意到学术期刊网站喜欢这样做。如果我试图从家里访问付费应用的文章并因为我没有使用我大学的代理服务器而被封锁,我通常必须在之后清除cookie允许代理被允许访问。)