PHP – Obtener navegador web e información de usuario

Resumen:

Obtener el nombre del navegador de un usuario que visita una página con PHP; además intentar parsearlo / interpretarlo para conocer el sistema operativo y dispositivo.

Información del navegador con PHP

La información del navegador se encuentra en $_SERVER["HTTP_USER_AGENT"] y su salida es algo como:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36

Esa es toda la información que se tiene sobre el navegador (ya que la IP está en otro lugar); en ella está incluido el sistema operativo y dispositivo, entre otros.

Recuerda que esta información no siempre es confiable, es decir, se puede modificar desde el cliente o puede incluso no estar disponible.

Además de eso, es un poco complejo parsear la cadena así que hay varias librerías que pueden hacer el trabajo por nosotros.

Parsear información de navegador con PHP

Como lo dije, a partir del User-Agent podemos intuir muchas cosas como sistema operativo o dispositivo, además de la familia del navegador web, todo esto obtenido desde PHP.

Existen muchas librerías y en este caso usaré esta, la cual puedes instalar con Composer usando:

composer require ua-parser/uap-php

Si no tienes composer mira un tutorial de instalación, y si tienes un proyecto de PHP que no está adaptado a composer mira cómo adaptarlo.

Uso de uap-php

Una vez que hayas descargado la librería con Composer incluye el autoload:

require_once "vendor/autoload.php"

Ahora mira este ejemplo:

Debemos crear un parseador e invocar al método parse, pasándole la cadena del agente de usuario.

Esta cadena puede ser tomada de $_SERVER como lo mostré anteriormente, o de otro lugar. Por ejemplo, podrías hacer una API que indique los detalles del navegador usando PHP, la cual recibiría esta cadena desde el cliente.

Después de eso puedes acceder a ua, device y os.

Nota: puedes ver más sobre la librería en el repositorio de GitHub.

Ejemplos de información que se puede obtener con PHP

Finalmente veamos algunos ejemplos en distintos navegadores web:

Navegador Chrome sobre Android 9

Navegador Chrome sobre Windows 10

Navegador Edge corriendo sobre Windows 10

Firefox sobre Android 9

Firefox sobre Windows 10

Como ves, Chrome en Android envía el nombre del dispositivo mientras que Firefox no.

PHP – Obtener navegador web e información de usuario

Por parzibyte Tiempo de lectura: 2 min
0