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