Introdução ao endereço IP

Para aprender 'Obter endereço IP em PHP', primeiro estudaremos o endereço IP. Um endereço IP ou um endereço de Protocolo da Internet é um endereço ou etiqueta numérica que todo sistema ou dispositivo conectado a uma rede possui. O endereço IP é atribuído a cada dispositivo. Esses dispositivos usam o protocolo da Internet para qualquer tipo de comunicação.

Versão IP

Os pontos abaixo explicam a versão do IP:

  • Uma versão IP é definida de acordo com o bit do rótulo do protocolo da Internet. Por exemplo, o IPv4, que é uma versão anterior, define um endereço de protocolo de Internet com número de 32 bits. Com o crescimento da Internet, surgiu o IPv6, que define um rótulo IP de 128 bits. O IPv6 está sendo usado desde 1995 até hoje. O endereço do Protocolo da Internet está escrito na linguagem compreensível para humanos. Um exemplo de IPv4 é o seguinte, 170.17.260.2 e um exemplo de IPv6 é 2001: db8: 2: 1434: 1: 587: 5: 2.
  • O espaço adquirido pelos endereços de protocolo da Internet é gerenciado globalmente. Um registro chamado Internet Assigned Numbers Authority, junto com os outros cinco registros regionais, possibilita o gerenciamento de espaço para endereços de protocolo da Internet. A IANA é responsável por alocar e gerenciar espaços de endereços de protocolo da Internet a todos os usuários finais e outros provedores de Internet em suas áreas ou territórios designados. Da mesma forma, todos os dispositivos conectados a uma rede de provedor de serviços de Internet recebem um endereço de protocolo de Internet exclusivo.
  • Existem endereços de protocolo de Internet estáticos que não mudam frequentemente, eles são fornecidos aos servidores. Os provedores de serviços de Internet fornecem um endereço de protocolo de Internet específico e exclusivo para uma máquina que está usando um modem. Esse endereço IP é exclusivo para uma sessão e pode mudar para a próxima sessão.

Identificando e retornando endereço IP em PHP

Por motivos de segurança, os sites coletam os endereços IP dos visitantes de seus sites. Existe uma maneira fácil de obter esse endereço em PHP. Existe uma matriz específica no PHP que ajuda e retorna o endereço IP da sua máquina. Uma matriz é conhecida como '$ _SERVER'. Ele contém informações sobre os caminhos, cabeçalhos e locais de script. O servidor da web cria as informações necessárias para a matriz $ _SERVER. Às vezes, o servidor não cria ou fornece todas as informações exigidas pela matriz; elas podem omitir algumas delas. Portanto, há outra matriz que pode ser usada nesses casos. Está escrito como 'SERVER_ADDR'. Essa matriz retorna o endereço IP do servidor no qual o script está sendo executado.

Métodos usados ​​para obter o endereço IP no PHP

Abaixo está o exemplo usado para obter um endereço IP em php:

Exemplos # 1

A maneira mais simples é usar $ _SERVER com 'REMOTE_ADDR'; ele retornará o endereço IP do usuário que está visualizando a página.

  • Exemplo usando ('REMOTE_ADDR') para identificar o endereço IP do servidor em PHP.

Código:

<_?php
echo 'User IP - '.$_SERVER('REMOTE_ADDR');
?>

Resultado:

Exemplo 2

Outro método, chamado 'SERVER_ADDR', que também é usado para recuperar o endereço IP do servidor.

  • Exemplo usando ('SERVER_ADDR') para identificar o endereço IP do servidor em PHP.

Código:

<_?php
// PHP program to retrieve server's Internet Protocol address
// Creating a variable to store the server address
$ip_server = $_SERVER('SERVER_ADDR');
// Displaying the retrieved address
echo "Server IP Address is: $ip_server";
?>

Resultado:

Explicação para o programa acima: A matriz de exemplo acima ($ _SERVER) é útil porque a máquina não está conectada via proxy. Se a máquina estiver conectada à Internet através ou através do servidor proxy, $ _SERVER ('REMOTE_ADDR') no PHP não retornará o endereço IP correto. Apenas retorna o endereço IP do servidor proxy e da máquina do usuário ou cliente. Nessa situação, outro método é usado para recuperar o endereço correto.

Exemplo 3

O exemplo a seguir é usado para retornar o endereço IP correto e real, mesmo se a máquina estiver oculta atrás de um servidor proxy. Ele usa um par extra de variáveis ​​SERVER que estão disponíveis para obter o endereço IP exato do sistema ou da máquina do cliente. Eles são conhecidos como HTTP_CLIENT_IP e HTTP_X_FORWARDED_FOR.

  • Exemplo usando ('HTTP_CLIENT_IP') e ('HTTP_X_FORWARDED_FOR') para identificar o endereço IP do servidor em PHP.

Código:

<_?php
function RetrieveUserIP()
(
if(!empty($_SERVER('HTTP_CLIENT_IP')))
(
$address=$_SERVER('HTTP_CLIENT_IP');
)
elseif(!empty($_SERVER('HTTP_X_FORWARDED_FOR')))
(
$address=$_SERVER('HTTP_X_FORWARDED_FOR');
)
else
(
$address=$_SERVER('REMOTE_ADDR');
)
return $address;
)
echo 'User IP Address is'.RetrieveUserIP();
?>

Resultado:

Para entender o fluxo de ações do código acima, pode-se consultar o seguinte fluxograma para o mesmo.

Explicação para o programa acima: O exemplo acima para recuperar o endereço IP usa duas variáveis ​​('HTTP_CLIENT_IP') e ('HTTP_X_FORWARDED_FOR'). No programa, fazemos nossa primeira tentativa de tirá-lo diretamente da máquina usando HTTP_CLIENT_IP. Se isso não estiver disponível, tentamos o IP 'encaminhado para' usando HTTP_X_FORWARDD_FOR. Quando as duas condições se tornam nulas, tentamos obter o endereço IP usando a variável REMOTE_ADDR.

Pontos a serem lembrados

Abaixo os pontos devem ser lembrados em Obtendo um endereço IP em php:

1. Quando executamos o código acima, o endereço IP retornado é exibido como :: 1. Isso é conhecido como um endereço de loopback, que na verdade é representado como 127 vezes zero, seguido por um 1 (0000 …. 127 vezes … .1). Se quisermos anotá-lo, ele será escrito como:

2. Mas no IPv6, podemos representar esse grande rótulo em um formato curto. Portanto, se houver todos os zeros em um único bloco, ele poderá ser substituído por um único zero. Então, quando seguiu a regra acima, ela se torna: 0: 0: 0: 0: 0: 0: 0: 0001;

3. Novamente, os zeros podem ser eliminados e restamos :: 0001

4. O qual novamente é reduzido para ' :: 1 ', daí a saída.

Explicação para o código acima: Se eles foram feitos para execução, eles podem não dar saída ou podem retornar um erro em tempo de execução, pois os domínios privados não fornecem seus endereços de protocolo da Internet. Embora os códigos acima sejam executados em um servidor local ou em um host local, como usamos um servidor WAMP, ele fornecerá uma saída de acordo com a versão do IP, ou seja, se for um IPv4, o endereço do protocolo da Internet será exibido como '127: 0: 0: 1', enquanto se for um IPv6, o endereço do protocolo da Internet será exibido como acima, ou seja, ':: 1'

Artigos recomendados

Este é um guia para Obter endereço IP em PHP. Aqui discutimos a identificação de endereço IP, métodos no endereço IP e pontos a serem lembrados no endereço IP. Você também pode consultar nossos outros artigos relacionados para saber mais -

  1. Conexão com o banco de dados PHP
  2. O que é TCP / IP?
  3. Programação de soquetes em PHP
  4. Palíndromo em PHP
  5. Palíndromo em C ++
  6. Palindrome em JavaScript
  7. Top 12 Comparação entre Mac e endereços IP
  8. Programação de soquete em Python
  9. O que é IPv4?