【问题标题】:How does a website know I'm using a proxy?网站如何知道我正在使用代理?
【发布时间】:2016-12-22 21:56:08
【问题描述】:

我可以从我的机器连接到 verizon 站点:

>>> import requests
>>> res=requests.get('https://tv.verizon.com/api/fullSearch/as/rows/30/start/0?assetTypeCode=movies')
>>> res
<Response [200]>

但是,如果我使用代理——它在另一个网站上运行,比如 Google——它不会返回响应:

>>> res=requests.get(
    'https://tv.verizon.com/api/fullSearch/as/rows/30/start/0?assetTypeCode=movies', 
     proxies={
        'http': 'http://xx:yy@23.82.141.126:29842' ,
        'https': 'http://xx:yy@23.82.141.126:29842'}
   )
[ request just hangs... ]

但在另一个网站上它可以工作:

    >>> res=requests.get(
...         'https://google.com', 
...          proxies={
...             'http': 'http://xx:yy@23.88.141.126:29842',
...             'https': 'http://xx:yy@23.88.141.126:29842'}
...        )
>>> res
<Response [200]>

为什么会这样?我如何通过代理成功请求 Verizon?

【问题讨论】:

  • 可能是因为 Verizon 故意丢弃来自这些代理的数据包......可能是因为他们过去收到过恶意请求。虽然如果它“挂起”,它可能会永远通过代理。
  • 这似乎是一个广泛的问题。你怎么确定你正在使用代理?也许您可以重新制定它,以便获得使用代理的帮助?无论哪种方式,这对我来说似乎都不是一个明确的问题(至少在我几乎完全没有代理经验的情况下)
  • @TemporalWolf 我不这么认为——我以前从未使用过这些代理。我现在只是在测试它。
  • block proxies 有很多方法。如果您使用的是公共代理,那么仅仅因为您没有滥用它并不意味着其他人没有。

标签: python proxy


【解决方案1】:

我知道tor 网络使用了一个可用的公共出口节点列表here。您希望连接的站点可能正在使用这样的查找表/列表。

这样做的原因是代理通常用于隐藏欺诈行为,例如黑客攻击或超载服务器(拒绝服务攻击)。断开连接会使从代理发起拒绝服务攻击变得更加困难。

请注意:我在这里以 tor 为例。此处可能涉及其他列表

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多