Como Descobrir O Ip Do Cliente

Índice:

Como Descobrir O Ip Do Cliente
Como Descobrir O Ip Do Cliente

Vídeo: Como Descobrir O Ip Do Cliente

Vídeo: Como Descobrir O Ip Do Cliente
Vídeo: Como descobrir o Endereço de Rede, Endereço de Broadcast e o Intervalo de Hosts (IPs) Válidos 2024, Abril
Anonim

Pelo endereço IP de um visitante do seu site, você pode descobrir muitas coisas sobre ele - país, cidade, nome e endereço de e-mail do provedor de Internet, etc. Mas o principal valor é que o IP pode servir como um ID de visitante para scripts do lado do servidor. Abaixo está descrito como você pode determinar o endereço IP usando PHP.

Como descobrir o ip do cliente
Como descobrir o ip do cliente

É necessário

Conhecimento básico de PHP

Instruções

Passo 1

Para extrair o endereço IP dos cabeçalhos enviados ao servidor de solicitação do navegador, use a função getenv. Ele lê os valores especificados a partir das variáveis de ambiente. Uma variável chamada REMOTE_ADDR é usada para armazenar o endereço IP do visitante. Porém, o cliente pode usar um servidor proxy, caso em que a variável conterá seu endereço, e não aquele que você deseja. Você pode descobrir que o internauta está usando um IP intermediário observando a variável de ambiente chamada HTTP_VIA. Todos os endereços dos servidores proxy envolvidos na cadeia são colocados nela, separados por vírgulas. Os servidores intermediários devem colocar o endereço do visitante em uma variável chamada HTTP_X_FORWARDED_FOR, mas isso depende inteiramente das configurações de proxy. Isso significa que para cobrir o máximo possível de possibilidades de determinação do endereço IP, você precisa verificar o conteúdo de pelo menos três variáveis: REMOTE_ADDR, HTTP_X_FORWARDED_FOR e, preferencialmente,

Passo 2

Você pode combinar a verificação de todas as três variáveis em uma linha de código PHP, por exemplo, assim:

$ ipAddr = getenv ('HTTP_CLIENT_IP') ou $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ou $ ipAddr = getenv ('REMOTE_ADDR');

Tendo obtido o valor do endereço IP desta forma, é aconselhável limpá-lo de possíveis distorções e caracteres desnecessários. Você pode usar uma expressão regular para isso:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

etapa 3

Resta combinar as duas linhas de código em uma função:

function getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') ou $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') ou $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Recomendado: