2010-05-30 2 views
9

Я использую xampp на localhost, и когда я использую $_SERVER["REMOTE_ADDR"], он возвращает ::1 (также делает это в phpinfo()). Почему он это делает? Я хочу, чтобы он возвращал обычный ip-адрес, например 127.0.0.1. Моя операционная система - Windows Vista.remote_addr не возвращает адрес IPv4

ответ

10

::1 является IPv6 address и аббревиатурой от 0:0:0:0:0:0:0:1, то есть loopback address, к местной машине. Таким образом, ::1 совпадает с 127.0.0.1 только через IPv6 вместо IPv4.

8

Ваш apache прослушивает IPv6 соединений по умолчанию (::1 is local loopback). Если вы действительно просто хотите IPv4, попробуйте отключить отключить подключение IPv6 в конфигурации Apache:

Если вы хотите Apache обрабатывает соединения IPv4 только, независимо от того, что ваша платформа и апрелю будет поддерживать, указать адрес IPv4 на всех Слушайте директивы, как в следующих примерах:

Listen 0.0.0.0:80 
Listen 192.170.2.1:80 
-2

Вы должны отключить поддержку IPv6 в своей ОС для apache, чтобы прекратить показывать эти адреса формата IPv6, если вам нужен формат IPv4. Я отключил поддержку IPv6 и теперь работает как ожидалось.

Следующие инструкции отключить IPv6 может быть полезным, http://support.microsoft.com/kb/929852

Только так вы знаете, я следовал шаги, описанные в приведенной выше ссылке, и я использую Windows 7 не Vista, хотя я сомневаюсь, что может быть любой или много различия.

Недавно я столкнулся с этой проблемой, хотя я никогда не помню, чтобы включить поддержку ipv6 в моей системе, может быть сделано Microsoft в одном из своих обновлений (возможно).

3

Перейти на панель управления XAMPP. Откройте Apache (httpd.conf), который можно найти в первой строке, то есть в действиях модуля Apache. Послушайте (вы можете Ctrl + F это), который показывает 80 (если у вас есть ipv6 active), измените его на Listen 0.0.0.0:80, и все готово. Перезапустите Apache и вы перестанете видеть ::1 в вашем браузере. Это с радостью вернет ваш localhost, то есть 127.0.0.1

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