pinoc 2 Denunciar post Postado Setembro 9, 2012 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
mangakah 217 Denunciar post Postado Setembro 9, 2012 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