2013-07-01 2 views
-2

В настоящее время я использую этот скрипт для регистрации своим пользователям IP адресов:Вход пользователя IP с PHP

$userip = $_SERVER['REMOTE_ADDR']; 

Однако, после того, как я купил анти-DDoS HTTP Proxy, он возвращает прокси IP вместо этого.

$_SERVER['REMOTE_ADDR'] -> 198.12.12.102 

Я использую Cloudflare с прокси-сервером, поэтому я вошел IP прокси-сервера в поле IP в Cloudflare, а затем выбирается «Обход сети Cloudflare».

+6

Это хорошо. У вас возникли вопросы? –

+2

И в чем вопрос? –

+1

Нет вопросов. –

ответ

0

Ну, да, если запрос проксирован, все PHP видит адрес прокси. В этом случае и только в этом случае, если вы посмотрите на альтернативные HTTP-заголовки. Прокси-сервер может, должен, добавить исходный IP-адрес в качестве дополнительного HTTP-заголовка, например X-Forwarded-For, который будет доступен в $_SERVER['HTTP_X_FORWARDED_FOR'].

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

+0

$ _SERVER ['HTTP_X_FORWARDED_FOR'] действительно возвращает IP-адрес! Ура! – user2537877

0

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

REMOTE_ADDR - это адрес системы, которая сделала фактическое подключение сокета к вашему серверу. Если используются прокси-серверы, вы должны ожидать увидеть IP-адрес прокси.

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