Подтвердить что ты не робот

Должен ли MAMP возвращать:: 1 как IP на localhost?

Мне нужно получить IP-адрес пользователя. Мой localhost возвращает ::1 как IP. Мне любопытно, если это ожидаемое поведение? Я запускаю MAMP на Snow Leopard.

4b9b3361

Ответ 1

Тот же вопрос, и нашел действительное решение, проверенное, работает хорошо. Я хотел иметь ip addy - от 127.0.0.1, а не вместо того, чтобы принимать:: 1 и обсуждать все проблемы IPv4/6. Итак, я несколько минут пробовал и упал на комментарий 2008 года, сделанный @Brad - здесь: http://board.issociate.de/thread/489575/SERVERquotREMOTEADDRquot-returning-1.html

Подведение итогов - (на Mac OS - Mountain Lion в частности)

sudo vi /etc/apache2/httpd.conf

Найдите, где ваш apache "прослушивает" ips/ports и т.д.... Обычно это будет строка, похожая на это.

Listen 80

Сделайте это так:

Listen 127.0.0.1:80

Зарезервируйте его. Перезапустите Apache. Вуаля!

Теперь $_SERVER[REMOTE_ADDR] будет выглядеть следующим образом: 127.0.0.1.

Надеюсь, что это поможет кому-то.

Ответ 2

::1 является эквивалентом IPv6 адреса IPv4 127.0.0.1.

Вы можете преобразовать адрес IPv6 в адрес IPv4, используя функцию inet_ntop() как Адам, сказал.

http://php.net/manual/en/function.inet-ntop.php

Ответ 3

Изменение /etc/apache2/httpd.conf или даже /private/etc/hosts не является решением. Он возвращает:: 1, потому что IPv6 эквивалентен старому (но золотому) IPv4 127.0.0.1. Как он определен в /privates/etc/hosts, всякий раз, когда вы обращаетесь к http://localhost, он принимает IPv6:: 1. Итак, это ожидаемое поведение.

Обходным путем было бы обращение к http://127.0.0.1 напрямую. Все будет хорошо. Но помните, что доступность IPv6 растет. Вы можете убедиться, что ваш сервер (после развертывания) будет реагировать только на IPv4, но в среднесрочной перспективе, если ваш сайт/веб-приложение не будет правильно обрабатывать как IPv4, так и IPv6, есть большая вероятность, что что-то пойдет не так в течение 1/2 лет. Или раньше мы никогда не узнаем.

Ответ 4

для тех, кто не решает эту проблему, кажется, что отсутствует файл hosts или строка

127.0.0.1       localhost   

в etc\hosts LINUX

в /private/etc/hosts устройствах MAC

in \%WINDIR%\system32\drivers\etc\hosts WINDOWS xp/vista/7/8/

когда удаляется файл hosts или missed или строка также IPV6 будет установлена ​​default...

Ответ 5

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

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