Php 如果Ip是动态的,如何跟踪用户

Php 如果Ip是动态的,如何跟踪用户,php,ip,Php,Ip,我想跟踪在我的网站上从同一IP注册的用户。我使用以下代码来获取用户的IP if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy { $ip=$_SERVER[

我想跟踪在我的网站上从同一IP注册的用户。我使用以下代码来获取用户的IP

if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
{
  $ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
{
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
  $ip=$_SERVER['REMOTE_ADDR'];
}

但我注意到IP地址一直在变化。有没有其他方法来跟踪用户?

我不知道在这种情况下我是否喜欢信任
HTTP\u X\u FORWARDED\u FOR
。作为附加信息
HTTP\u FORWARDED\u FOR
可以包含逗号分隔的ip地址,在逗号上分解,修剪,并选择集合中的第一个条目。@Awais Mustafa即使在动态IP上也会返回相同的值吗?这是一个锅炉板代码(我怀疑您复制/粘贴的代码没有属性),它试图获取用户的真实IP,即使他们使用的是代理服务器。它绝对不会处理动态分配IP地址的用户,我没有复制粘贴它。我在我的项目中使用了它,它非常适合我的使用。所以否决票是不好的。
// Function to get the client ip address
function get_client_ip_server() {
    $ipaddress = '';
    if ($_SERVER['HTTP_CLIENT_IP'])
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if($_SERVER['HTTP_X_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if($_SERVER['HTTP_X_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if($_SERVER['HTTP_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if($_SERVER['HTTP_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if($_SERVER['REMOTE_ADDR'])
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';

    return $ipaddress;
}
echo get_client_ip_server();