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

Why is my client IP returned as ::1 on xampp?

我正在尝试获取客户端 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 还是我的代码有问题?

::1 是 IPv6 中的 localhost。您的测试盒正在使用 IPv6 连接到本地主机。

您可以显式使用 127.0.0.1 或配置 /etc/hosts 以将 127.0.0.1 用于 localhost

:1代表localhost / 127.0.0.1

用你的ip地址试试xampp我的ip地址是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>";

?>