使用PHP检测用户ip地址


detect user ip address using PHP

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

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",

我不知道代码出了什么问题。

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

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