为什么 HTTP_X_FORWARDED_FOR 在我的服务器中显示一些 ip 地址

Why HTTP_X_FORWARDED_FOR shows some ip address in my server

我在我的两个不同的服务器中放置了相同的代码来查找代理服务器,但是我的一个服务器显示这是代理 server.Finally 我打印所有服务器变量,我可以看到它有 HTTP_X_FORWARDED_FOR 在 HTTP header 中。为什么会这样?

我以前找到的代码是

<?php

如果($_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_X_FORWARDED'] || $_SERVER['HTTP_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] | | $_SERVER['HTTP_VIA'] || in_array($_SERVER['REMOTE_PORT'],array(8080,80,6588,8000,3128,553,554)) || @fsockopen($_SERVER ['REMOTE_ADDR'], 80, $errno, $errstr, 2))

{

    echo "Proxy detected";
    //Proxy detected'
}

else
{
    echo "Proxy not detected";
    //No Proxy detected
}

?>

通常出于多种原因插入

X-Forwarded-For。

  1. 如果您的服务器位于反向代理之后,反向代理通常会插入 X-Forwarded-For 以识别后端服务器的原始客户端 IP。

  2. 如果客户端位于公司代理(常见)之后,该代理可能会由于多种原因插入 X-Forwarded-For。它通常不受欢迎,因为它有效地泄漏了内部 IP 地址,但如果站点上使用多个链接代理,它通常会发生。

  3. 如果客户端位于 Internet 上托管的开放代理之后,该代理可能会插入 header.

代理也应该添加 Via header,但他们通常不会。