Можно ли предположить, что $_SERVER['REMOTE_ADDR']
всегда возвращает IPv4-адрес?REMOTE_ADDR и IPv6 в PHP
Спасибо!
Можно ли предположить, что $_SERVER['REMOTE_ADDR']
всегда возвращает IPv4-адрес?REMOTE_ADDR и IPv6 в PHP
Спасибо!
Ключ REMOTE_ADDR установлен веб-сервером, а не PHP. Если веб-сервер прослушивает v6, и пользователь подключается таким образом, это будет адрес v6
Я видел плохой IP адрес сообщается в PHP в REMOTE_ADDR от Apache 2.
Это был «183,60. .244.37.
Так что ответ на ваш вопрос: «Можно ли предположить ...», я думаю, что это определенно нет, REMOTE_ADDR не может быть доверено.
Насколько я знаю, сообщается PHP с сервера, в моем случае Apache. Почему это было плохо, я все еще пытаюсь понять. Я это знаю. Он пришел как часть серии запросов на атаку. Иногда это было 183.60.244.37, а иногда это было 183.60..244.37.
См. Также this.
Приятно знать, возможно, некоторые ошибки Apache нет? –
Разработчик php просто сказал мне, что REMOTE_ADDR поступает из cgi и так с сервера tcp-соединения, а не http. Но я все еще работаю над тем, как сервер может сообщить об этом в php, если это то, что происходит. –
+1, спасибо! Я попытаюсь выяснить, как я могу конвертировать IPv6-адрес в число. –
http://php.net/manual/en/function.inet-pton.php преобразует v4 и v6 "строковые" адреса в их упакованное представление. –
@Michael IPv6 имеет много текстовых представлений. Есть стандартное представление, возвращаемое '$ _SERVER ['REMOTE_ADDR']'? – Pacerier