Una herramienta moderna basada en Flask que ofrece geolocalización precisa, datos WHOIS completos y una API RESTful fácil de integrar.
En la era de las aplicaciones distribuidas y el edge computing, conocer la ubicación y el origen de una IP es esencial para seguridad, cumplimiento normativo o personalización de la experiencia de usuario. Sin embargo, desplegar servicios fiables de Geo-IP y WHOIS puede resultar complejo, costoso o poco escalable.
Aquí es donde entra en juego Gunter, un microservicio ligero desarrollado por Needful Apps, que ofrece una API moderna para geolocalización, consultas WHOIS y resolución inversa de DNS, todo con actualizaciones automáticas de bases de datos y documentación OpenAPI lista para usar.
Servicio web en Flask, listo para producción
Gunter está construido sobre Flask, el popular microframework de Python, y expone una serie de endpoints REST que pueden desplegarse fácilmente con Docker, quedando disponibles en http://localhost:6600
. Entre sus funcionalidades principales destacan:
/api/geo-lookup/<ip>
– Datos de geolocalización por IP o dominio/api/whois/<target>
– Consulta WHOIS para IPs o dominios/api/status
– Verifica el estado de la base de datos GeoLite2/api/docs
– Interfaz Swagger/OpenAPI para explorar y probar la API
“Queríamos una herramienta sencilla, con datos actualizados y lista para integrar. Gunter cumple con todo eso”, comenta Carlos Álvarez, administrador de sistemas en una fintech europea.
Perfecto para firewalls, dashboards internos y herramientas de desarrollo
Gracias a su diseño modular y su bajo consumo de recursos, Gunter es ideal para:
- Firewalls personalizados o herramientas de edge security
- Dashboards de monitorización para desarrolladores
- Pipelines de análisis de logs
- Sistemas de cumplimiento KYC o antifraude
- Formularios o servicios web con validación por IP
Además, descarga automáticamente la base de datos GeoLite2-City de MaxMind y la mantiene actualizada, sin intervención manual.
Despliegue en segundos con Docker
Puedes poner en marcha Gunter con un solo comando:
docker run -d -p 6600:6600 ghcr.io/needful-apps/gunter:latest
También se puede desplegar con Podman, Docker Compose o instalar localmente en un entorno Python virtualizado. Para producción, es posible desactivar los endpoints /status
y /docs
mediante variables de entorno:
GUNTER_ENABLE_STATUS=false
GUNTER_ENABLE_API_DOCS=false
Ejemplo de uso: geolocalización de una IP
curl http://localhost:6600/api/geo-lookup/8.8.8.8
Respuesta:
{
"ip": "8.8.8.8",
"city": "Mountain View",
"country": "United States",
"latitude": 37.4056,
"longitude": -122.0775,
"whois": {
"org": "Google LLC",
"updated": "2025-07-15"
}
}
API bien documentada y compatible con múltiples idiomas
Gunter incluye documentación OpenAPI interactiva, accesible desde Swagger UI. Además, permite devolver resultados en diferentes idiomas utilizando el parámetro lang
en las consultas, lo que lo hace útil para interfaces multilingües o dashboards regionalizados.
Experiencia para desarrolladores: CLI, pre-commits, limpieza de código
Gunter incluye herramientas orientadas a desarrolladores:
- Hooks de pre-commit con
black
eisort
para formateo automático - Scripts de limpieza de código
- Diseño modular, fácil de extender
- Licencia MIT para uso libre, incluso en entornos comerciales
Comunidad y agradecimientos
Gunter se basa en la base de datos pública GeoLite2 de MaxMind. El proyecto está en activo desarrollo y abierto a contribuciones de la comunidad.
“La belleza de Gunter está en su sencillez. Hace exactamente lo que promete, y eso lo hace perfecto para arquitecturas basadas en microservicios”, señala Peter Wong, contribuidor y DevOps engineer.
Prueba Gunter
🔧 Instálalo localmente con:docker run -d -p 6600:6600 ghcr.io/needful-apps/gunter:latest
🔗 Código fuente: github.com/needful-apps/Gunter
🌍 Una herramienta open source, creada para la velocidad y la simplicidad.