1

我的网站上有一个联系表,我想知道用户的 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",

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

4

2 回答 2

8

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

于 2013-06-26T13:54:45.077 回答
2

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

于 2013-06-26T13:55:14.567 回答