使用PHP检测用户ip地址

使用PHP检测用户ip地址,php,Php,我在我的网站上有一个联系表单,我试图知道用户的IP地址是什么,我在我的本地测试XAMPP中尝试了这段PHP代码: function getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to ch

我在我的网站上有一个联系表单,我试图知道用户的IP地址是什么,我在我的本地测试XAMPP中尝试了这段PHP代码:

function getRealIpAddr()
{
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'];
  }
  return $ip;

}
$ipaddress= getRealIpAddr();

echo "my ip address is" . $ipaddress;
但结果总是这样

"my ip address is::1",

我不知道代码有什么问题。

那是因为您在本地计算机上-
::1
本地主机的IPv6地址之一。它类似于
127.0.0.1
。这是因为您正在本地访问脚本。如果您将此脚本上载到服务器,并通过internet连接访问它,您将能够看到您的外部IP。

这是因为您在本地计算机上-
::1
本地主机的IPv6地址之一。它类似于
127.0.0.1
。这是因为您正在本地访问脚本。如果您将此脚本上载到服务器,并通过internet连接访问它,您将能够看到您的外部IP。

::1与127.0.0.1相同,但使用IPv6表示法,因此您的代码可能是正确的!您能在服务器上检查它并将结果与“whatismyip.com”输出进行比较吗?

::1与127.0.0.1相同,但使用IPv6表示法,因此您的代码可能是正确的!你能在服务器上检查一下并将结果与“whatismyip.com”之类的输出进行比较吗?

可能是@AleksG的重复我认为它更像是这个的重复,然而,你发布的内容应该标记为相关,因为在那个SO问题中有很多有用的信息。@AleksG的可能副本我认为它更像是这个的副本,但是你发布的内容应该标记为相关,因为在那个SO问题中有很多有用的信息。