为什么 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。
如果您的服务器位于反向代理之后,反向代理通常会插入 X-Forwarded-For 以识别后端服务器的原始客户端 IP。
如果客户端位于公司代理(常见)之后,该代理可能会由于多种原因插入 X-Forwarded-For。它通常不受欢迎,因为它有效地泄漏了内部 IP 地址,但如果站点上使用多个链接代理,它通常会发生。
如果客户端位于 Internet 上托管的开放代理之后,该代理可能会插入 header.
代理也应该添加 Via header,但他们通常不会。
我在我的两个不同的服务器中放置了相同的代码来查找代理服务器,但是我的一个服务器显示这是代理 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。
如果您的服务器位于反向代理之后,反向代理通常会插入 X-Forwarded-For 以识别后端服务器的原始客户端 IP。
如果客户端位于公司代理(常见)之后,该代理可能会由于多种原因插入 X-Forwarded-For。它通常不受欢迎,因为它有效地泄漏了内部 IP 地址,但如果站点上使用多个链接代理,它通常会发生。
如果客户端位于 Internet 上托管的开放代理之后,该代理可能会插入 header.
代理也应该添加 Via header,但他们通常不会。