Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pinoc

ip do usuario

Recommended Posts

Opa pessoal

 

tirar um duvida, to pegando o ip do usuario com o seguinte codigo $_SERVER['REMOTE_ADDR']; ta correto isso?

Pois ta vindo apenas o ip do servidor pra min não vem o ip do ussuario.

 

Obs.: to enviando para o banco de dados, e recuperando depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece porque entre o cliente e o servidor há um proxy. Nessas ocasiões, o IP geralmente está no cabeçalho X-Forwarded-For.

 

$_SERVER['HTTP_X_FORWARDED_FOR']

 

Então, uma maneira mais segura de pegar o IP do usuário verificando este cabeçalho:

<?php
function pegarIp(){
   if (!empty($_SERVER['HTTP_CLIENT_IP'])) {   // IP compartilhado
       $ip = $_SERVER['HTTP_CLIENT_IP'];
   } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {  // Proxy
       $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
   } else {
       $ip = $_SERVER['REMOTE_ADDR'];
   }

   return $ip;
}

$ip = pegarIp();
echo $ip;

 

 

Observe que muitas vezes X-Fowarded-For virá no seguinte formato:

X-Forwarded-For: client, proxy1, proxy2

 

Três endereços IP separados por virgula. Se você quer apenas o IP do cliente, você precisa detectar a virgula com 'strpos', usar explode na virgula e pegar apenas o índice 0 do array resultante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.