2009-04-17 5 views
3

При доступе к моему сайту с нескольких компьютеров $ _SERVER ['REMOTE_ADDR'] всегда разрешает пустую строку. Что может быть причиной этого?

Дополнительная информация: Одна из машин запустила сайт на локальном хосте. Должна ли машина на локальном хосте всегда разрешать 127.0.0.1?

Моя установка - ЛАМПА. Один разработчик. машина, которая запускает сайт localhost, и проблема связана с Mac и запускает XAMPP. Я думаю, что наша среда для живых выступлений - CentOS (общий хост).

+0

Какое программное обеспечение веб-сервера и какая версия PHP? – Alnitak

+0

Добавлена ​​дополнительная информация. – Luke

+0

Вы делаете 'gethostbyaddr()' поиск на 'REMOTE_ADDR'? – matpie

ответ

2

Я думаю, это связано с отсутствием обратного делегирования для адреса. Вы должны избегать обратного разрешения, если это абсолютно необходимо.

Это не только дорогостоящее с точки зрения задержки, но также может давать неожиданные результаты, поскольку нет требования о том, что нужно решить - или разрешить в aall.

+3

Думаю, вы думаете о REMOTE_HOST. REMOTE_ADDR - это IP-адрес. – Greg

0

Попробуйте посмотреть на phpinfo() с этих машин и посмотреть, что они представляют.

+0

Это займет некоторое время. Не все машины находятся под моим контролем. – Luke

0

Я просто столкнулся с этой проблемой, и выясняется, что код PHP устанавливал его до '' явно перед запуском моего кода. Это связано с тем, что удаленный addr IPv6 не соответствовал только регулярному выражению IPv4.

Оставив это здесь, в случае, если у кого-то другая проблема, это была слишком простая причина для моего обнаружения.

Модуль, о котором идет речь, был simplemachinesforum.

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