sexta-feira, 29 de junho de 2012

Pegando IP real com php

tutorial básico e simples de como pegar o endereço IP real dos visitantes de seu site utilizando PHP, incluindo observações de segurança.Pegar o IP real dos visitantes pode ser importante por diversas razões, por exemplo, login, geo targeting, redirecionamento, etc. Toda informação relevante sobre IP pode ser encontrada no array $_SERVER. O caminho mais simples para pegar o endereço IP de seus visitantes é com o código a seguir:
(obs. não fui eu que fiz apenas pesquisei na net e estou compartilhando para vcs tbm.)
?

$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
?>
No entanto essa solução não é totalmente precisa, pois se o usuário estiver em uma conexão utilizando servidor proxy, então o IP que você obterá será o do servidor proxy e não o endereço IP real do usuário. Felizmente podemos fazer um refinamento adicional para obter resultados mais precisos. Os servidores proxy trazem no cabeçalho HTTP uma propriedade que armazena o IP original. O nome deste campo é X-Forwarded-For ou Client-Ip. Se um destes campos estiver presente no cabeçalho HTTP, entãovocê pode ler os seus valores através do array $_SERVER como no primeiro exemplo. Você precisa então checar todas estas 3 possibilidades abaixo:
?
echo "Remote addr: " .$_SERVER['REMOTE_ADDR'] . "
";
echo "X Forward: " . $_SERVER['HTTP_X_FORWARDED_FOR'] . "
";
echo "Clien IP: " . $_SERVER['HTTP_CLIENT_IP'] . "
";
?>
Usando essa informação fica muito fácil criar uma simples função que irá retornar o "provavelmente verdadeiro*" IP do visitante do site:
?
function getIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']
))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
?>
?
1 $ip = $_SERVER['REMOTE_ADDR'];
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86