NorfiPC
NorfiPC » Diseño y edición web » Mostrar datos con PHP

Como mostrar la dirección IP con PHP a nuestros visitantes


Actualizado: 05 de diciembre del 2022
Por: Norfi Carrodeguas
Códigos para que los usuarios puedan ver y conocer la dirección IP que usan y otros datos, ejemplos prácticos para copiar y pegar en el código HTML o código fuente de tu página. Variables PHP que devuelven información de las peticiones hechas al servidor.
Como mostrar la dirección IP de los visitantes y otros datos en las páginas web

Si tienes una página web o un blog de internet y deseas agregarle funcionalidad, puedes de forma sencilla usar unas líneas de código para mostrarles a tus lectores algunos datos técnicos y así evitar que tengan que acudir a buscar la misma información en otros sitios.
Entre los datos que se pueden mostrar están los que se conocen mediante los headers enviados por el navegador del usuario a tu sitio.
Estos no son más que peticiones que según establece el protocolo HTTP, deben enviar los navegadores al servidor donde se encuentra alojada la página que el usuario necesita cargar.
Entre dichas peticiones figuran la dirección IP que tiene asignada el usuario, el navegador que utiliza, el sistema operativo, y muchos otros datos como se verá posteriormente.
Es decir que solo es necesario capturar dichos headers o encabezados y escribirlos en un lugar de la página, de esa forma el usuario verá y conocerá datos técnicos que quizás de otra forma no tenga manera de acceder a ellos, por lo que le estarás ofreciendo de forma gratuita un servicio en varios casos necesario.


¿Cómo mostrar el contenido de los headers o encabezados HTTP?


Se puede mostrar dicha información de dos formas, utilizando el lenguaje Javascript y PHP, esta última posibilidad es la que se tratará en esta página, en otro artículo puedes conocer cómo hacerlo con Javascript.

¿Qué es el lenguaje PHP?


PHP es un lenguaje de programación, funciona del lado del servidor de la misma forma que ASP.
Esto quiere decir que cada vez que ejecutamos una función incluida en una página, esta se refresca y representa en el navegador el resultado.
Es preferido por algunos porque es imposible conocer el código empleado en cualquier función, lo que no ocurre con Javascript, en el que es posible copiar y piratear cualquier código.
PHP es de código abierto, es decir libre de utilizar y está disponible toda la información necesaria para que cualquier persona pueda usarlo a su manera.
Todas las empresas que ofrecen el servicio de hosting, dan soporte para PHP.

Requisitos para mostrar la información al usuario


Existen solo dos requisitos, si no cuentas con algunos de ellos deberás desistir, pero no es nada difícil.
1- Tener una página o poder subir una a un servidor que ofrezca soporte de PHP, en la actualidad la gran mayoría de los servicios de hosting, incluyendo los que son gratuitos, dan esta posibilidad.
2. Utilizar una página web escrita en HTML, pero es imprescindible servirla como php, es decir guardarla con la extensión de archivo .PHP
Es todo, el resto es solo copiar el código necesario en este mismo artículo, y pegarlo en el código fuente de dicha página.
Puede ser una simple página hecha con ese fin o una página existente ya, en cuyo caso se mostrará la información en el lugar exacto donde se inserte el código.


Extraer y mostrar la dirección IP con PHP


Solo copia y pega el siguiente código como se muestran aquí en el lugar exacto de tu página.
<?php 
echo "Tu dirección IP es: {$_SERVER['REMOTE_ADDR']}";
?>
52.90.142.26
De esta forma escribimos el contenido de la variable "REMOTE_ADDR", mediante la cual el servidor devuelve la dirección IP con la que se accede a la página.


Otros métodos de extraer la dirección IP


La información obtenida mediante $_SERVER['REMOTE_ADDR'] no es nada exacta, pero es la más confiable.
En muchos casos no indica la dirección IP asignada a nuestra conexión de internet, sino la de nuestro proveedor o la del proxy mediante el cual nos conectamos.
Scripts que usan otras variables de PHP, prometen extraer la dirección IP real, obviando la de los proxies o intermediarios. Son 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED, y 'HTTP_X_FORWARDED_FOR'.
La primera de ellas muestra la dirección IP asignada si es compartida y las dos siguientes si no es encontramos tras un proxy.
Dos métodos que podemos emplear son los siguientes:
<?php
function get_client_ip_env() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if(getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if(getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if(getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if(getenv('HTTP_FORWARDED'))
        $ipaddress = getenv('HTTP_FORWARDED');
    else if(getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'UNKNOWN';

    return $ipaddress;
}

function get_client_ip_server() {
    $ipaddress = '';
    if ($_SERVER['HTTP_CLIENT_IP'])
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if($_SERVER['HTTP_X_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if($_SERVER['HTTP_X_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if($_SERVER['HTTP_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if($_SERVER['HTTP_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if($_SERVER['REMOTE_ADDR'])
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';

    return $ipaddress;
}
echo 'IP address (usando get_client_ip_env function) es ' . get_client_ip_env() . '<br>';
echo 'IP address (usando get_client_ip_server function) es ' . get_client_ip_server() . '<br>';
?>
Esto no es nada exacto, porque las dos variables se pueden declarar en los encabezados por los proxies.
La única variable que no pueden hacerlo o es la de 'REMOTE_ADDR'.
En el caso de los sitios que se encuentren tras el CDN Cloudflare, este devuelve como 'REMOTE_ADDR', una dirección IP del servicio.
La solución es usar la variable 'HTTP_CF_CONNECTING_IP', para obtener la real.


Mostrar la dirección IP con JavaScript


JavaScript se ejecuta del lado del cliente y no en el servidor, por lo que no podemos emplearla para obtener la IP.
Si podemos con un script obtenerla de otro servicio que la devuelva.
Es posible hacerlo con varios "IP lookup services" disponibles en internet.
Muchos de ellos ofrecen opciones gratis.
Solo necesitamos agregar en las páginas una sencilla función.
En otro artículo explicamos cómo hacerlo: Obtener los datos asociados a una dirección IP de internet


Como obtener otros datos del usuario mediante PHP


Es posible obtener otros datos usando las diferente variables.
• 'SERVER_NAME' para el nombre del servidor
• 'HTTP_REFERER' para conocer la página de referencia
• 'REMOTE_PORT' para saber el puerto usado
• 'HTTP_USER_AGENT' para mostrar el agente de usuario de tu navegador
El codigo que se puede emplear es el siguiente:
<?php 
echo "El nombre del servidor es: {$_SERVER['SERVER_NAME']}<hr>"; 
echo "Vienes procedente de la página: {$_SERVER['HTTP_REFERER']}<hr>"; 
echo "Te has conectado usando el puerto: {$_SERVER['REMOTE_PORT']}<hr>"; 
echo "El agente de usuario de tu navegador es: {$_SERVER['HTTP_USER_AGENT']}";
?>


Otras variables para obtener información mediante PHP


La siguiente tabla muestra algunas de las variables de PHP que se pueden utilizar y la información que devuelven.
Si te interesa el tema, la lista de todas las variables, con la información que devuelve cada una puedes conocerla accediendo a la siguiente pagina:
Mostrar los encabezados HTTP a los visitantes con PHP


Usar PHP para hacer tus páginas más atractivas y utiles


Con PHP se puede hacer infinidad de cosas útiles, no es necesario ser un experto, solo tienes que conocer algunos principios básicos e ir probando con distintos códigos. Existen sitios en internet repletos de códigos conocidos como snippets, muy interesantes y útiles.
Para experimentar lo ideal es instalar un servidor local en tu equipo que funcione similar a un servidor web.
Lee en otras páginas de este sitio como instalar Apache para ese propósito y después agregarle PHP.
En dichas páginas encontrarás también códigos muy instructivos que te animaran a empezar, son las siguientes:
Como instalar y configurar el servidor web Apache en Windows
Como instalar y configurar PHP en el servidor Apache en Windows

Páginas relacionadas



Sobre el autor:

Norfi Carrodeguas es el fundador y webmaster del sitio web Norfipc, creado en el año 2010. Norfi es un ingeniero informático y desarrollador web cubano. Con más de 14 años de experiencia en la publicación en internet, comparte su tiempo con su consultoría SEO. Más información sobre el autor.

Comparta esta página
Facebook
Twitter

Sígueme en las redes sociales


Norfipc en Facebook Norfipc en Twitter Canales RSS con las últimas publicaciones

 
 
Inicio | Mapa del sitio | Buscar | Sobre mí