如何在不被远程网站检测到的情况下使用代理?

2024-04-26 00:31:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过python使用一个代理,以便从不同的、特定的IP地址登录到一个站点。但是,某些网站似乎可以检测到原始(主机)IP地址。我已经调查过这个问题,这是我发现的。在

我尝试过四种代理方法:

  • 带有代理设置的Firefox。在
  • 带有mechanize.set_proxies的Python。在
  • Firefox在一个使用内部网络的虚拟机中,与另一个充当路由器的虚拟机(有两个适配器:一个NAT和一个内部网络)一起设置,使得内部网络流量通过代理路由。在
  • TorBrowser(它使用Firefox作为实际的浏览器)。在

前三个我用了同一个代理。Tor不是我自己的选择。以下是我注意到的预期行为:

  • 对于所有这些,如果我转到http://www.whatismyip.com/,它将给出正确的IP地址(代理的IP地址,而不是主机的IP地址)。在
  • ^{cd3>的代理称“没有检测到”。在

事实上,似乎我访问的网站确实认为我的IP是代理的。但是,有一些奇怪的情况让我觉得有些网站可以检测到我原来的IP地址。在

  • 在一种情况下,使用非美国代理通过Firefox访问一个非美国站点,该站点实际上能够打印我的原始IP地址(来自美国),并拒绝我访问。这不是不可能吗?但是,通过具有相同非美国代理的虚拟机或具有非美国出口节点的TorBrowser访问站点,站点无法这样做。在
  • 在类似的情况下,我从一个非美国代理访问另一个非美国网站。如果我从虚拟机中的Firefox或使用非US出口节点的TorBrowser登录站点,则该站点将正常工作。但是,如果我试图使用代理(虚拟机使用的同一代理)或mechanize通过Firefox登录,它将无法登录,并显示不相关的错误消息。在
  • 在第三种情况下,使用mechanize.set_proxies选项,我用太多的请求重载了一个站点,因此它决定阻止访问(每当我登录时,它都会故意超时)。我想它可能已经阻止了代理的IP地址。然而,当我从另一台主机上运行代码,但是使用同一个代理时,它又工作了一段时间,直到他们再次阻止它。(不用担心,我不会再骚扰这个网站了-我重新运行了这个程序,因为我认为这可能是我这边的一个故障,而不是他们的终端一个街区。)从一个被阻止的主机使用Firefox+代理解决方案访问该站点也导致了故意的超时。在

在我看来,所有这些站点,在Firefox+代理和mechanize的情况下,都能够找到主机的IP地址,而在TorBrowser和虚拟机的情况下,它们却没有

网站如何收集这些信息?TorBrowser和虚拟机案例有什么不同之处,阻止了站点收集这些信息?另外,如何实现python脚本,以便通过代理访问的站点无法检测主机的IP地址?在


Tags: 方法网络信息代理节点站点网站情况
1条回答
网友
1楼 · 发布于 2024-04-26 00:31:36

代理可能在^{}HTTP报头中报告了您的真实IP地址,但如果是这样,我很惊讶WhatIsMyIP站点没有告诉您这一点。在

如果您第一次直接访问非美国站点,然后再次使用代理,那么该站点也可能在您第一次访问时在您的浏览器中设置了cookies,即使在您的IP地址更改之后,该站点也可以识别您。这可以解释您在浏览器实例之间观察到的差异。在

(我注意到学术期刊网站喜欢这样做。如果我试图从家里访问一篇付费文章,但由于我没有使用我大学的代理服务器而被阻止,我通常必须在允许访问代理之后清除cookies。)

相关问题 更多 >