尽管使用代理,仍检索真实访客 IP 地址
获取访客 IP 地址常用的 PHP 代码是:
但是,当代理运行时,此方法无法捕获真实IP。为了寻求此问题的解决方案,让我们深入研究替代方法。
用于 IP 确定的自定义 PHP 函数
考虑到 CloudFlare 连接,提供的 PHP 代码提供了全面的解决方案以及各种其他因素:
function getUserIP()
{
// Handle CloudFlare connections
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
if(filter_var($client, FILTER_VALIDATE_IP))
{
$ip = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP))
{
$ip = $forward;
}
else
{
$ip = $remote;
}
return $ip;
}
$user_ip = getUserIP();
此代码将 IP 地址分配给变量 $user_ip,然后可以根据需要在 PHP 脚本中使用该变量。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3