检测用户是否在免费Web代理后面?

时间:2010-07-03 03:49:41

标签: proxy

请告诉我如何检测用户是否支持免费网络代理?

4 个答案:

答案 0 :(得分:1)

您基本上需要一个包含所有已知网络代理的数据库。如果你想要这个,因为你想禁止代理后面的用户访问,我会说这是浪费时间。新的代理一直在出现,很难维护一个最新的数据库。

答案 1 :(得分:0)

除非您有一份详尽无遗的每个免费网络代理列表,否则(每天都会添加更多)

您能告诉我们您想要做的更多事情吗?也许我们可以找到另一种方式来帮助你。

答案 2 :(得分:0)

我对代理服务器了解不多,但我认为您可以检查HTTP标头中的X-FORWARDED-FOR字段。

答案 3 :(得分:-3)

if( ($_SERVER['HTTP_ACCEPT_ENCODING'] == "") or !isset($_SERVER['HTTP_ACCEPT_ENCODING']) )
{
    // using a proxy
    echo( "<font color=red><b>Using a Proxy</b></font><br>" );
}
else
{
    // not using a proxy
    echo( "<font color=green><b>Not using a Proxy</b></font><br>" );
}

我在使用和不使用代理的情况下查看了$_SERVER数组,我发现在代理后面,$_SERVER['HTTP_ACCEPT_ENCODING']没有使用,当不在代理后面时,它被使用。我还没有找到任何使用它的代理,我也没有发现任何不使用代理时不使用$_SERVER['HTTP_ACCEPT_ENCODING']的情况。

亲自测试一下,你会发现它有效。