Implementación de Geolocalización IP en PHP Utilizando la Instalación PECL

Geolocalización es una característica importante para un sitio web porque permite a las empresas en línea proporcionar contenido dirigido a los usuarios potenciales según su ubicación geográfica. Al utilizar datos de geolocalización, el propietario del sitio web puede ofrecer contenido localizado, como noticias locales, clima y eventos, y mostrar el contenido en el idioma nativo. También puede ayudar a prevenir el fraude al permitir que las empresas detecten y bloqueen actividades sospechosas originadas en ciertas regiones geográficas. Es una herramienta importante para los propietarios de sitios web y desarrolladores para mejorar la experiencia del usuario y prevenir la fraudulentas.

La geolocalización se puede implementar de diversas maneras, como en la capa del servidor web, la capa de lenguaje de programación o mediante el uso de un SDK. En nuestro artículo anterior, demostramos cómo instalar geolocalización en el servidor Apache. En este artículo, exploraré otro enfoque instalando geolocalización en el lenguaje PHP usando la instalación de PECL. Para esta demostración, utilizaremos IP2Location, el mismo proveedor de geolocalización, para que puedas comprender cómo funciona la geolocalización en diferentes entornos.

Resumen de IP2Location

IP2Location es una base de datos que contiene información sobre direcciones IP y sus ubicaciones asociadas. La base de datos contiene una gama de información, incluido el país, la región, la ciudad, la latitud, la longitud, la zona horaria, el código postal, el código de área, la información móvil, el tipo de uso y mucho más de la dirección IP.

Para utilizar IP2Location, necesitas obtener una copia de la base de datos y cargarla en tu aplicación. Una vez que la base de datos esté cargada, puedes usarla para geolocalizar direcciones IP y recuperar información sobre las ubicaciones asociadas.

Nota: Las diferentes versiones de las bases de datos tienen una granularidad diferente de la información de ubicación. Tienes que obtener la adecuada para tu implementación.

Resumen de la instalación de PECL

PECL (PHP Extension Community Library) es un repositorio de extensiones PHP que te permiten agregar funcionalidad adicional a tu aplicación PHP. La extensión IP2Location es una de las extensiones disponibles en PECL, y te permite utilizar IP2Location en tu aplicación PHP.

Para usar la extensión IP2Location, debes instalarla en tu servidor mediante PECL. Una vez instalada la extensión, puedes usarla en tu código PHP para geolocalizar direcciones IP y recuperar información sobre sus ubicaciones asociadas. En este tutorial, asumiré que ya tienes instalado Apache y PHP, y estás familiarizado con Debian 11.

Guía paso a paso para implementar geolocalización de IP en PHP usando PECL

Paso 1: Instalar PECL

El primer paso para implementar IP2Location en PHP es instalar PECL. Para instalar PECL, necesitarás tener los encabezados y herramientas de desarrollo de PHP instalados en tu sistema. Puedes instalarlos usando tu administrador de paquetes si no los has configurado. Por ejemplo, en Ubuntu o Debian, puedes ejecutar el siguiente comando:

  • sudo apt-get install php-dev php-pear

Paso 2: Instalar la Biblioteca C de IP2Location 

Necesita la Biblioteca C de IP2Location para compilar el módulo de PHP. Para hacerlo, simplemente ejecute el siguiente comando:

  • sudo apt-get install git

Esto instalará el comando git. Luego, ejecute el siguiente comando para clonar el proyecto de github de IP2Location:

  • sudo git clone https://github.com/chrislim2888/IP2Location-C-Library

Luego, dentro de la carpeta del proyecto, ejecute el siguiente comando:

 

autoreconf -i -v --force
./configure
make
make install

El comando anterior instalará la Biblioteca C de IP2Location. 

Paso 3: Instalar la Extensión de IP2Location 

Ahora que tiene PECL instalado, puede instalar la extensión de IP2Location. Para hacerlo, simplemente ejecute el siguiente comando:

  • sudo pecl install ip2location

Esto descargará e instalará la extensión de IP2Location para PHP.

Paso 4: Configurar PHP para Usar la Extensión de IP2Location 

Ahora que tiene la extensión de IP2Location instalada, necesita configurar PHP para usarla. Para hacerlo, deberá agregar una línea a su archivo php.ini.

Para encontrar su archivo php.ini, puede ejecutar el siguiente comando:

  • php -i | grep php.ini

Esto generará la ruta hacia tu archivo php.ini. Una vez que tengas la ruta, puedes abrir el archivo en el editor de texto de tu preferencia.

A continuación, agrega la siguiente línea a tu archivo php.ini:

  • extension=ip2location.so

Esto indicará a PHP que cargue la extensión IP2Location.

Paso 5: Reiniciar Apache

Debes reiniciar el servidor Apache para actualizar la lista de módulos de PHP. Para hacerlo, ejecuta el siguiente comando:

  • sudo service apache2 restart

Luego, puedes ingresar el siguiente comando para verificar si el módulo IP2Location ha sido instalado y cargado correctamente:

  • php -m | grep ip2location

Deberías ver el IP2location después de ejecutar el comando anterior.

Paso 6: Descargar la Base de Datos IP2Location 

Antes de poder usar IP2Location para identificar la ubicación de una dirección IP, necesitarás descargar la base de datos IP2Location. Esta base de datos contiene información sobre la ubicación geográfica de cada dirección IP.

Puedes descargar la base de datos gratuita desde el sitio web de IP2Location LITE. Hay varias versiones de bases de datos disponibles, asegúrate de elegir la adecuada para tus necesidades.

Paso 7: Escribir Tu Código PHP

Una vez que tengas instalada la extensión IP2Location y descargado la base de datos, estarás listo para comenzar a usar IP2Location en tu código PHP. Aquí tienes un ejemplo:

PHP

 

// Cargar la base de datos
ip2location_open('path/to/database.bin');

Una vez que hayas cargado la base de datos, puedes usar la clase IP2Location para identificar la ubicación de una dirección IP. Aquí tienes un ejemplo:

PHP

 

// Imprimir la información de ubicación
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;

Verás el siguiente resultado:

Ventajas y Desventajas de Instalar PECL para Geolocalización

PHP PECL es relativamente fácil de instalar en comparación con módulos de Apache, ya que solo requiere la instalación de los encabezados y herramientas de desarrollo de PHP necesarios. Además, es más flexible, ya que no está atado a ningún servidor web específico, puede usarse en cualquier plataforma que soporte PHP.

Sin embargo, hay desventajas en el uso de esta solución. Para usar PHP PECL, necesitas tener conocimientos de PHP, el comando Linux y los fundamentos del proceso de construcción de paquetes. PHP PECL puede no funcionar tan bien como un módulo de Apache para sitios web con mucho tráfico, ya que agrega una capa adicional de procesamiento a PHP.

Conclusión

Es importante evaluar cuidadosamente los pros y los contras de cada enfoque de implementación de geolocalización para determinar cuál se adapta mejor a tus necesidades específicas. Factores como tu experiencia técnica, plataforma del servidor y requisitos de rendimiento deben considerarse al tomar una decisión.

Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install