Почему мой IP-адрес клиента возвращается как:1 на 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-адрес, или что-то не так с моим кодом?
2
Author: user1721135, 2015-03-16
3 answers
::1
является localhost
в IPv6. Ваш тестовый блок использует IPv6 для подключения к локальному хосту.
Вы можете либо явно использовать 127.0.0.1
, либо настроить /etc/hosts
для использования 127.0.0.1
для localhost
.
3
Author: hek2mgl, 2015-03-16 12:06:34
: 1 означает локальный хост/127.0.0.1
1
Author: EnggForum, 2015-03-16 12:08:23
Попробуйте это с вашим ipadress в xampp мой 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>";
?>
0
Author: Zakir Hunter, 2017-05-31 03:43:27