Geolocalización por IP
Resuelve direcciones IPv4 e IPv6 a códigos de país ISO 3166-1 alfa-2 mediante una base de datos binaria local MaxMind GeoLite2.
Requiere una base de datos GeoLite2 creada por MaxMind, disponible en https://www.maxmind.com. MaxMind y GeoLite2 son marcas registradas de MaxMind, Inc.
Modelo operativo y almacenamiento
El servicio IPLookup ejecuta consultas binarias en local y sin conexión sobre un archivo MaxMind DB (.mmdb) almacenado en el sistema de archivos del servidor. No se emiten peticiones de red salientes durante la evaluación de expresiones.
- Ubicación de la base de datos: De forma predeterminada, la base de datos se almacena en
wp-content/expressionlab/{hash}-GeoLite2-Country.mmdb, donde{hash}corresponde a un HMAC determinista de 16 caracteres derivado de las claves secretas de la instalación. - Ruta personalizada: Es posible definir la constante
EXPRESSION_LAB_MAXMIND_PATHenwp-config.phppara indicar una ruta alternativa dentro deWP_CONTENT_DIR. El archivo debe tener la extensión.mmdb. - Política de actualización: Las directivas de MaxMind exigen actualizar las bases de datos GeoLite2 dentro de los 30 días posteriores a su publicación.
- Direcciones reservadas y privadas: Las direcciones de loopback (
127.0.0.1,::1), los rangos privados (RFC 1918) y las direcciones de enlace local no contienen asignación geográfica y devuelvennull.
Gestión de la base de datos mediante WP-CLI
La obtención, actualización y mantenimiento de la base de datos se gestionan mediante WP-CLI.
Descarga o actualización de la base de datos
Para descargar o renovar la base de datos local GeoLite2 Country:
wp expressionlab iplookup update --license-key=MAXMIND_LICENSE_KEY
Para evitar pasar la clave de licencia como opción en cada ejecución, basta con definir la constante en wp-config.php:
define( 'EXPRESSION_LAB_MAXMIND_API_KEY', 'maxmind_license_key' );
Con la constante definida, ejecutar:
wp expressionlab iplookup update
Las actualizaciones se omiten si la base de datos se actualizó en las últimas 24 horas. Para eludir esta comprobación, se puede indicar la opción --force:
wp expressionlab iplookup update --force
Inspección del estado de la base de datos
Para consultar el estado actual de la base de datos, la ruta del archivo, el tamaño, la fecha de modificación y la época de compilación (build epoch):
wp expressionlab iplookup status
La salida incluye advertencias si el archivo de la base de datos no se encuentra o si su fecha de compilación supera el plazo de cumplimiento de 30 días.
Eliminación de la base de datos
Para eliminar el archivo de la base de datos local:
wp expressionlab iplookup delete
Para omitir la confirmación interactiva, se puede añadir la opción --yes:
wp expressionlab iplookup delete --yes