用php代码获取真实用户 IP 地址

当使用了 CDN、负载均衡 …后,导致使用 $_SERVER[‘REMOTE_ADDR’] 获取不到用户的真实 IP

当用户使用了“匿名代理”,$_SERVER[‘REMOTE_ADDR’] 将显示代理服务器的IP

因为业务的需要,我们就需要获取用户的真实 IP 进行业务上的操作

<?php
//获取用户真实IP
function getIp() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return ($ip);
}
echo getIp();//输出真实 IP
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《用php代码获取真实用户 IP 地址》
文章链接:https://www.qqooo.cn/html/1441.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
本站资源均来源于网络,若侵犯您的权益,请来信 Feelym@88.com 删除!