Почему мой 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-адрес, или что-то не так с моим кодом?

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