Obtenha o endereço IP do usuário em PHP
-
Use
$_SERVER['REMOTE_ADDR']para encontrar o endereço IP do usuário em PHP -
Use
$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_CLIENT_IP']e$_SERVER['HTTP_X_FORWARDED_FOR']para encontrar o endereço IP do usuário -
Use o operador ternário e a função
isset()para encontrar o endereço IP do usuário
Apresentaremos uma maneira de acessar o endereço IP do usuário a partir de um servidor em PHP usando a variável superglobal $_SERVER com REMOTE_ADDR como o único elemento do array. É usado como $_SERVER['REMOTE_ADDR'].
Vamos demonstrar outra maneira de acessar o endereço IP do usuário em PHP usando a expressão condicional para verificar se os endereços IP do usuário vêm de uma Internet compartilhada, de um proxy ou é o endereço IP real. Este método usa elementos do array como HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR e REMOTE_ADDR.
Mostraremos um método abreviado para obter o endereço IP do usuário em PHP usando o operador ternário e a função isset(). Este método também usa os elementos do array como HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR e REMOTE_ADDR na supervariável global $_SERVER.
Use $_SERVER['REMOTE_ADDR'] para encontrar o endereço IP do usuário em PHP
Podemos usar a expressão $_SERVER['REMOTE_ADDR'] para encontrar o endereço IP de onde o usuário está acessando a página atual. $_SERVER é a variável superglobal em PHP e leva uma variedade de elementos de array como argumentos. Usamos REMOTE_ADDR como o elemento do array na variável $_SERVER para acessar o endereço IP real do cliente. Observe que $_SERVER['REMOTE_ADDR'] nem sempre fornece o endereço IP correto do cliente em todos os casos. Discutiremos os outros casos a seguir. Certifique-se de que a API do servidor (SAPI) esteja bem configurada para que a expressão acima retorne o IP real da conexão.
No exemplo abaixo, o localhost é usado como servidor. Portanto, ele retorna o endereço IP de loopback. Para saber mais sobre o endereço de loopback, consulte aqui. Suponha que a URL do seguinte script PHP seja http://localhost/index.php. Ele exibe o endereço IP da máquina local como ::1. ::1 é a representação IPv6 do localhost.
Por exemplo, atribua o $_SERVER['REMOTE_ADDR'] a uma variável ip_addr. Em seguida, imprima a variável usando o echo.
Código de exemplo:
# php 7.x
<?php
$ip_add = $_SERVER['REMOTE_ADDR'];
echo "The user's IP address is - ".$ip_add;
?>
Resultado:
The user's IP address is - ::1
Use $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_CLIENT_IP'] e $_SERVER['HTTP_X_FORWARDED_FOR'] para encontrar o endereço IP do usuário
Podemos usar os elementos do array da variável superglobal $_SERVER como $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_CLIENT_IP'] e $_SERVER['HTTP_X_FORWARDED_FOR'] para encontrar o endereço IP de o usuário em PHP. Use $_SERVER['REMOTE_ADDR'] para encontrar o endereço IP real do usuário. Use $_SERVER['HTTP_CLIENT_IP'] para encontrar o endereço IP quando o usuário estiver acessando a página da Internet compartilhada. Use $_SERVER['HTTP_X_FORWARDED_FOR'] para encontrar o endereço IP quando o usuário usa um proxy para acessar a página web. Observe que cabeçalhos como HTTP_X_FORWARDED_FOR e HTTP_CLIENT_IP podem ser falsificados, pois podem ser configurados por qualquer pessoa. Às vezes, eles podem não representar o endereço IP real do cliente.
Por exemplo, use a função empty() para verificar se $_SERVER['HTTP_CLIENT_IP'] contém algo. Se contiver, atribua o valor na variável $ip e imprima i.
Novamente, execute uma verificação em $_SERVER['HTTP_X_FORWARDED_FOR'] de acordo e atribua o valor e imprima-o se ele existir. Execute uma operação semelhante em $_SERVER['REMOTE_ADDR'].
O exemplo abaixo, $_SERVER['REMOTE_ADDR'] devolve o endereço IP, uma vez que o utilizador não está a utilizar nenhum proxies ou ligação à Internet partilhada. Verifique o Manual PHP para saber mais sobre a matriz $_SERVER.
Código de exemplo:
#php 7.x
<?php if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
echo $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
echo $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
echo $ip = $_SERVER['REMOTE_ADDR'];
}
?>
Resultado:
::1
Use o operador ternário e a função isset() para encontrar o endereço IP do usuário
Podemos usar um método abreviado para encontrar o endereço IP do usuário em PHP usando o operador ternário. Neste método, o método isset() verifica se o array contém os elementos especificados ou os arquivos de cabeçalho.
Por exemplo, use a função isset() para verificar se o array contém HTTP_CLIENT_IP. Se a condição for verdadeira, HTTP_CLIENT_IP é definido. Então, se a condição falhar, a função isset() é usada para verificar se o array contém HTTP_X_FORWARDED_FOR. Da mesma forma, se a condição for verdadeira, HTTP_X_FORWARDED_FOR é definido e REMOTE_ADDR é definido quando a condição falha.
No exemplo abaixo, o cliente não está a utilizar um proxy ou uma Internet partilhada. Portanto, o $_SERVER['REMOTE_ADDR']é executado. Por favor, verifique o MSDN Web Docs para saber mais sobre o operador ternário.
Código de exemplo:
#php 7.x
<?php
$ip = isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
echo "The user IP Address is - ". $ip;
?>
Resultado:
The user IP Address is - ::1
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn