我正在尝试获取客户端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或我的代码有问题?
答案 0 :(得分:3)
::1
是IPv6中的localhost
。您的测试框使用IPv6连接到localhost。
您可以明确使用127.0.0.1
或配置/etc/hosts
以127.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>";
?>