Se ha publicado la primera versión del proyecto geoip, un servicio para recuperar información de ubicación de direcciones IP mediante una API REST. El proyecto busca simplificar la integración de la funcionalidad GeoIP en diversas aplicaciones, liberando a los desarrolladores de la necesidad de gestionar manualmente las actualizaciones de la base de datos y de trabajar con el formato MMDB. El código está escrito en Rust y se distribuye bajo la licencia MIT. Funciona en Linux, macOS y otros sistemas similares a UNIX.
Opciones de servicio básico:
- Alto rendimiento y bajo consumo de memoria gracias al uso de un lenguaje compilado de forma nativa sin recolector de basura.
- Proporcionar información de dirección IP (país, ciudad, código postal, coordenadas, operador de telecomunicaciones, etc.) a través de API REST basada en datos de MaxMind GeoLite2 (gratis) y MaxMind GeoIP2 (pago).
- Determinar la dirección IP actual del usuario (disponible a través de un punto final separado; el parámetro IP del punto final principal es opcional).
- Actualizaciones automáticas de bases de datos configurables (tanto desde recursos oficiales de MaxMind usando ID de cuenta y clave de licencia, como desde una URL personalizada con soporte de autorización; puede especificar el intervalo de verificación de actualización).
- Una interfaz web para enviar consultas manualmente, incluido soporte opcional para visualización en OpenStreetMap.

- Para todos los resultados que contienen un campo de zona horaria, se genera automáticamente un campo posix_timezone adicional (por ejemplo, Europa/París se convierte a CET-1CEST,M3.5.0,M10.5.0/3). Esto permite la configuración automática de la zona horaria en dispositivos integrados (p. ej., ESP32 y otros destinos newlib sin tzdata integrado). Esta función es única y no está disponible en soluciones similares.
- Actualizaciones automáticas de la base de datos de zonas horarias (el intervalo, la fuente y la autorización son configurables; el sitio oficial de la IANA se utiliza por defecto). Si las actualizaciones están deshabilitadas, se utiliza la base de datos del sistema.
- La capacidad de descargar archivos de bases de datos actuales a través de HTTP directamente desde el servicio (lo que permite utilizar una instancia como fuente proxy para otras y reduce el consumo de cuota de MaxMind).
- Soporte para protección de puntos finales mediante una clave API opcional.
- Disponibilidad de la especificación OpenAPI y interfaz de usuario Swagger incorporada para una fácil integración con sus proyectos.
- Proporcionar una imagen de Docker lista para usar para una implementación rápida: docker run \ -e MAXMIND_ACCOUNT_ID=XXXX \ -e MAXMIND_LICENCE_KEY=YYYY \ -e OSM_TILES_URL=»https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png» \ # opcional -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Fuente: opennet.ru

