如何检测代理请求?

时间:2016-02-29 08:28:20

标签: http proxy

我知道这是一个很受欢迎的问题,我阅读了有关它的所有主题。我想在这个问题上为我指出一点。

目标:如果用户使用

,则检测代理

原因:如果用户使用代理不显示geo adv。我需要知道布尔结果。

决定:  1.使用代理IP数据库(例如:MaxMind);  2.检查标头Connection: keep-alive,因为廉价代理不使用持久连接。但所有现代浏览器都使用它;  3.检查其他流行的标题;  4.使用JS通过比较浏览器主机和真实主机来检测Web代理。

问题:  1.建议数据库,我读了MaxMind,但有些人写道它没有效果。  2.检查Connection-header。好吗?  我可能错过了什么?

PS /对不起我的英语......我学到了它。

3 个答案:

答案 0 :(得分:1)

您建议的选项1是最佳选择。代理检测可能非常耗时且复杂。

正如您提到的maxmind以及您对有效性的关注,还有其他API,如GetIPIntel。它是免费的,使用起来非常简单。它们超越了简单的黑名单,并使用机器学习和概率论算法来确定概率值并使事情非常准确。

你提到的选项2除非你得到很多误报,否则不会受到影响。选项3-4不应该单独使用,因为它很容易绕过它。所有浏览器操作都可以自动执行,只是因为有人使用代理,并不意味着他们不使用真正的浏览器。

答案 1 :(得分:0)

  1. 您可以评估每日更新的IP2Proxy数据库。它检测开放代理,Web代理,Tor和VPN。 https://www.ip2location.com/databases/px2-ip-proxytype-country

  2. 检查连接标头对于VPN等代理类型是不准确的。

  3. 检查标题很容易被击败。新一代代理将尝试解决老一代的检测方法。

  4. 根据我们的经验,代理检测的最佳方法是基于准确的黑名单。

答案 2 :(得分:0)

最好的方法是使用API​​。您可以使用MaxMind中的数据库,但是您需要继续下载该数据库并确保数据由他们保持最新。正如您所说,有关MaxMind数据准确性的问题。

就我个人而言,我建议您尝试https://proxycheck.io完全披露是我自己的网站,您可以通过1,000次每日查询获得免费,高级代理检测和阻止的所有内容。