使用PHP检测用户IP地址

joh*_*ohn 1 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 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;
Run Code Online (Sandbox Code Playgroud)

但结果总是如此

"my ip address is::1",
Run Code Online (Sandbox Code Playgroud)

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

cas*_*raf 8

那是因为你在本地机器上 - ::1是IPv6的一个地址localhost.它类似于127.0.0.1.那是因为你在本地访问你的脚本.如果您将此脚本上载到服务器,并通过Internet连接访问它,您将能够看到您的外部IP.