2016-09-28 2 views
2

Я пытаюсь получить IP-адрес моего локального хоста с помощью функции PHP,
Почему WAMP (3.0.4) показывает :: 1 вместо 127.0.0.1 на локальном хосте

$user_ip = $_SERVER['REMOTE_ADDR']; 
echo $user_ip; 

В настоящее время она возвращается **::1** Я хочу вернуть ipv4 **(127.0.0.1)** вместо ipv6 **(::1)**. Возможно, это глупый вопрос, который я искал много, но не нашел никакой помощи.

+0

http://superuser.com/a/668008 –

+1

точный дублирующий вопрос http://stackoverflow.com/questions/10517371/ip-address-of-the-machine-in-php-gives-1-but- почему – JYoThI

+0

$ _SERVER ['REMOTE_ADDR'] - это IP-адрес клиента. $ _SERVER ['SERVER_ADDR'] - это IP-адрес сервера. – JYoThI

ответ

2

Windows, как и большинство ОС, теперь являются старыми IPV4 и новыми IPV6.

Оба имеет, Что называется адресом замыкания на себя

IPV4 is 127.0.0.1 
IPV6 is ::1 

Как WampServer и ваш браузер оба на тот же компьютер, ваш удаленный адрес IP будет локальный адрес IP т.е. адреса петлевого

WampServer в Apache сконфигурирован также для IPV4 и IPV6.

Теперь его браузер, который решает использовать IPV4 или IPV6, и я не знаю, какие правила он использует для принятия решения. Поэтому в вашем случае для этого подключения он решил использовать сеть IPV6.

Поэтому $_SERVER['REMOTE_ADDR'] сообщает ::1

Если вы хотите, чтобы доказать это, вы можете заставить браузер использовать сеть IPv4, введя URL в http::/127.0.0.1 и вы увидите 127.0.0.1 сообщил как удаленный адрес IP.

Смежные вопросы