Introducción a la dirección IP

Para aprender 'Obtener dirección IP en PHP', primero estudiaremos la dirección IP. Una dirección IP o una dirección de Protocolo de Internet es una dirección que es una dirección numérica o etiqueta que tiene cada sistema o dispositivo conectado a una red. La dirección IP se asigna a cada uno de esos dispositivos. Estos dispositivos utilizan el protocolo de internet para cualquier tipo de comunicación.

Versión IP

Puntos a continuación Explique la versión IP:

  • Una versión IP se define de acuerdo con el bit de la etiqueta del protocolo de Internet. Por ejemplo, IPv4, que es una versión anterior, define una dirección de protocolo de Internet con un número de 32 bits. Con el crecimiento de Internet, surgió IPv6 que define una etiqueta de IP de número de 128 bits. IPv6 se utiliza desde 1995 hasta hoy. La dirección del Protocolo de Internet está escrita en un lenguaje comprensible para los humanos. Un ejemplo de IPv4 es el siguiente, 170.17.260.2 y un ejemplo para IPv6 es 2001: db8: 2: 1434: 1: 587: 5: 2.
  • El espacio adquirido por las direcciones de protocolo de internet se gestiona globalmente. Un registro llamado Autoridad de Números Asignados de Internet junto con los otros cinco registros regionales hace posible la administración del espacio para direcciones de protocolo de Internet. La IANA es responsable de asignar y administrar espacios de direcciones de protocolo de Internet a todos los usuarios finales y otros proveedores de Internet en sus áreas o territorios designados. Del mismo modo, a todos los dispositivos conectados a una red de proveedores de servicios de Internet se les asigna una dirección de protocolo de Internet única.
  • Hay direcciones de protocolo de Internet estáticas que no cambian con frecuencia, se proporcionan a los servidores. Los proveedores de servicios de Internet proporcionan una dirección de protocolo de Internet específica y única a una máquina que está utilizando un módem. Esa dirección IP es única para una sesión y puede cambiar para la próxima sesión.

Identificación y devolución de direcciones IP en PHP

Por razones de seguridad, los sitios recopilan las direcciones IP de los visitantes de sus sitios. Hay una manera fácil de obtener esta dirección en PHP. Hay una matriz específica en PHP que ayuda y devuelve la dirección IP de su máquina. Una matriz se conoce como '$ _SERVER'. Contiene información sobre las rutas, encabezados y ubicaciones de script. El servidor web crea la información requerida para la matriz $ _SERVER. A veces, este servidor no crea ni proporciona toda la información requerida por la matriz, pueden omitir parte de ella. Por lo tanto, hay otra matriz que se puede utilizar en tales casos. Está escrito como 'SERVER_ADDR'. Esta matriz devuelve la dirección IP del servidor en el que se ejecuta el script.

Métodos utilizados para obtener la dirección IP en PHP

A continuación se muestra el ejemplo utilizado para obtener una dirección IP en php:

Ejemplos # 1

La forma más simple es usar $ _SERVER con 'REMOTE_ADDR', devolverá la dirección IP del usuario que está viendo la página actualmente.

  • Ejemplo usando ('REMOTE_ADDR') para identificar la dirección IP del servidor en PHP.

Código:

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

Salida:

Ejemplo # 2

Otro método, llamado 'SERVER_ADDR', que también se utiliza para recuperar la dirección IP del servidor.

  • Ejemplo usando ('SERVER_ADDR') para identificar la dirección IP del servidor en 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";
?>

Salida:

Explicación del programa anterior: la matriz de ejemplo anterior ($ _SERVER) es útil si la máquina no está conectada mediante proxy. Si la máquina está conectada a Internet a través del servidor proxy, $ _SERVER ('REMOTE_ADDR') en PHP no devuelve la dirección IP correcta. Simplemente devuelve la dirección IP del servidor proxy y de la máquina del usuario o cliente. En esta situación, se utiliza otro método para recuperar la dirección correcta.

Ejemplo # 3

El siguiente ejemplo se utiliza para devolver la dirección IP correcta y real, incluso si la máquina se esconde detrás de un servidor proxy. Utiliza un par adicional de variables de SERVIDOR que están disponibles para obtener la dirección IP exacta del sistema o máquina del cliente. Se conocen como HTTP_CLIENT_IP y HTTP_X_FORWARDED_FOR.

  • Ejemplo usando ('HTTP_CLIENT_IP') y ('HTTP_X_FORWARDED_FOR') para identificar la dirección IP del servidor en 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();
?>

Salida:

Si se quiere entender el flujo de acciones del código anterior, se puede consultar el siguiente diagrama de flujo para el mismo.

Explicación del programa anterior: el ejemplo anterior para recuperar la dirección IP utiliza dos variables, ('HTTP_CLIENT_IP') y ('HTTP_X_FORWARDED_FOR'). En el programa, hacemos nuestro primer intento de sacarlo directamente de la máquina usando HTTP_CLIENT_IP. Si eso no está disponible, tratamos de IP 'reenviado por' utilizando HTTP_X_FORWARDD_FOR. Cuando ambas condiciones caen nulas, intentamos obtener la dirección IP utilizando la variable REMOTE_ADDR.

Puntos para recordar

Debajo de los puntos debe recordarse obtener una dirección IP en php:

1. Que cuando ejecutamos el código anterior, la dirección IP devuelta se muestra como :: 1. Esto se conoce como una dirección de bucle invertido que en realidad se representa como 127 veces ceros seguidos de un 1 que es (0000 … 127 veces … 1). Si vamos a escribirlo, se escribirá como:

2. Pero en IPv6, podemos representar esta gran etiqueta en una forma corta. Entonces, si hay todos ceros en un solo bloque, se puede reemplazar con un solo cero. Entonces, cuando se sigue la regla anterior, se convierte en: 0: 0: 0: 0: 0: 0: 0: 0001;

3. Una vez más, los ceros se pueden eliminar y nos queda con :: 0001

4. Que nuevamente se reduce a ' :: 1 ', por lo tanto, la salida.

Explicación del código anterior: si están hechos para ejecutarse, es posible que no den ningún resultado o que devuelvan un error de tiempo de ejecución ya que los dominios privados no proporcionan sus direcciones de protocolo de Internet. Si bien los códigos anteriores se ejecutan en un servidor local o un host local, como si hubiéramos usado un servidor WAMP, proporcionará una salida de acuerdo con la versión IP, es decir, si es un IPv4, la dirección del protocolo de Internet será se muestra como '127: 0: 0: 1', mientras que si se trata de un IPv6, la dirección del protocolo de Internet se mostrará como se indica arriba, que, ':: 1'

Artículos recomendados

Esta es una guía para obtener la dirección IP en PHP. Aquí discutimos la identificación de la dirección IP, los métodos en la dirección IP y los puntos a recordar en la dirección IP. También puede consultar nuestros otros artículos relacionados para obtener más información:

  1. Conexión de base de datos PHP
  2. ¿Qué es TCP / IP?
  3. Programación de sockets en PHP
  4. Palindrome en PHP
  5. Palindrome en C ++
  6. Palindrome en JavaScript
  7. Comparación de las 12 principales direcciones de Mac con direcciones IP
  8. Programación de sockets en Python
  9. ¿Qué es IPv4?