为什么我的客户端IP在xampp上以:: 1的形式返回?

时间:2015-03-16 12:03:36

标签: php xampp ip

我正在尝试获取客户端IP以便将其与某些范围进行比较,但我在第一步失败:确定用户的IP地址。

我使用以下代码:

$ip = getenv('HTTP_CLIENT_IP')?:
getenv('HTTP_X_FORWARDED_FOR')?:
getenv('HTTP_X_FORWARDED')?:
getenv('HTTP_FORWARDED_FOR')?:
getenv('HTTP_FORWARDED')?:
getenv('REMOTE_ADDR');
echo $ip;

但我得到的结果是:::1

我正在使用XAMPP。

我如何获得真正的IP以及为什么XAMPP会输出我的内部网络IP而不是我的真实IP或我的代码有问题?

3 个答案:

答案 0 :(得分:3)

::1是IPv6中的localhost。您的测试框使用IPv6连接到localhost。

您可以明确使用127.0.0.1或配置/etc/hosts127.0.0.1使用localhost

答案 1 :(得分:1)

:1代表localhost / 127.0.0.1

答案 2 :(得分:0)

在xampp中使用你的ipadress尝试这个,我的ipadress是192.168.1.3

<?php

$ip = getenv('HTTP_CLIENT_IP')?:
$ip1 = getenv('HTTP_X_FORWARDED_FOR')?:
$ip2 = getenv('HTTP_X_FORWARDED')?:
$ip3 = getenv('HTTP_FORWARDED_FOR')?:
$ip4 = getenv('HTTP_FORWARDED')?:
$ip5 = getenv('REMOTE_ADDR');


echo "HTTP_CLIENT_IP  : ".$ip."</br>";
echo "HTTP_X_FORWARDED_FOR : ".$ip1."</br>";
echo "HTTP_X_FORWARDED : ".$ip2."</br>";
echo "HTTP_FORWARDED_FOR  : ".$ip3."</br>";
echo "HTTP_FORWARDED  : ".$ip4."</br>";
echo "REMOTE_ADDR : ".$ip5."</br>";

?>