Base de datos de geolocalización IP: local o API
Una base de datos de geolocalización IP autoalojada es un archivo que descargas y consultas dentro de tu propio proceso, mientras que una API de geolocalización IP es una llamada de red a un proveedor que conserva y actualiza los datos por ti. La elección tiene que ver sobre todo con dónde prefieres pagar: en trabajo de operaciones y disciplina de actualización, o en latencia de red y dependencia del servicio de otro.
Qué implica autoalojar una base de datos de IP
Con una base de datos autoalojada, un archivo binario (a menudo de unas decenas de megabytes a varios cientos, según el proveedor y los campos incluidos) reside junto a tu aplicación. Las búsquedas son lecturas en memoria que normalmente terminan en microsegundos, no hay salto de red por solicitud y ninguna dirección sale de tu infraestructura. Este último punto importa si tu revisión de privacidad trata la IP de un visitante como un dato personal que no debe compartirse con un tercero.
El coste es todo lo que rodea al archivo. Alguien tiene que descargar las nuevas versiones según un calendario, validarlas, desplegarlas en cada servidor o contenedor y gestionar el caso en que un despliegue lleve una copia obsoleta. Las licencias varían según el proveedor, y algunas bases de datos comerciales tienen condiciones distintas de las gratuitas, así que léelas antes de incrustar un archivo en un producto. Además, una base de datos solo responde a lo que contiene: si quieres indicadores de VPN, Tor o abuso, estos proceden de archivos o servicios aparte que debes actualizar con su propia cadencia.
Qué cambia una API de geolocalización IP
Una API traslada la canalización de datos al proveedor. Envías una dirección y recibes JSON estructurado, y los datos que hay detrás se actualizan sin que toques un despliegue. Para un equipo pequeño esto elimina una tarea recurrente. También facilita obtener campos que serían incómodos de distribuir como archivo. Una sola llamada a la consulta de IP de ipto devuelve país, ciudad, ASN, organización y código de moneda, además de los indicadores is_vpn, is_tor, is_abuser, is_datacenter y bogon con bogon_type.
Los compromisos son reales. Cada búsqueda añade un viaje de ida y vuelta por la red, de modo que la latencia se mide en milisegundos y no en microsegundos. Dependes de la disponibilidad y de los límites de frecuencia del proveedor, lo que significa que necesitas tiempos de espera, una alternativa y, idealmente, una caché. Y la dirección se envía a un tercero, algo que debe constar en tu documentación de privacidad. ipto es gratuito, sin registro, y permite 1.000 solicitudes gratuitas al día, lo suficiente para crear un prototipo o ejecutar un servicio de poco volumen, aunque las cargas de mucho tráfico deben planificarse teniendo en cuenta ese límite.
Actualidad no es lo mismo que precisión
Se suele suponer que una API es más precisa porque está «en vivo». En su mayor parte solo es más reciente. El problema de fondo, asignar una dirección a un lugar, es el mismo en ambos casos, y los resultados a nivel de ciudad son más débiles que los de país en los dos modelos, sobre todo en conexiones móviles y residenciales. Lo que difiere es cuán obsoletos pueden quedar los datos. Un archivo autoalojado es tan antiguo como tu última actualización correcta. Una API es tan antigua como el ciclo de actualización del proveedor: en ipto, los feeds de amenazas (VPN, Tor, abuso) se actualizan cada 6 horas, y los conjuntos de datos de IP y ASN a diario. Ninguno es en tiempo real, y un punto de salida de VPN recién creado no se marcará hasta que un feed lo recoja.
Una regla de decisión práctica
- Volumen muy alto o presupuesto de latencia estricto: una base de datos local suele ganar, porque desaparecen el coste de red por llamada y los límites de frecuencia.
- Normas estrictas de residencia de datos: mantén las búsquedas en local, ya que no se transmite ninguna dirección a ningún sitio.
- Equipo pequeño, tráfico moderado, necesidad de señales de riesgo: una API suele ser más barata en tiempo de ingeniería, porque los feeds, los datos de ASN y la reputación ya están reunidos.
- Un término medio: usa una API con una caché local indexada por dirección (o por rango de red) y un tiempo de vida razonable. Muchas aplicaciones ven repetidamente las mismas direcciones, de modo que la caché absorbe la mayor parte del tráfico.
También puedes combinar modelos: un archivo local a nivel de país para la ruta crítica y una llamada a la API solo cuando una solicitud parece inusual y quieres contexto de ASN, VPN o abuso. El verificador de VPN, Tor y proxy muestra exactamente cómo son esos indicadores de riesgo para una dirección dada, y la búsqueda de ASN muestra el propietario de la red que hay detrás. El formato de solicitud y respuesta se describe en la documentación de la API.
Pruébalo antes de decidir
La forma más barata de evaluar el modelo de API es pasar por él muestras de tu tráfico real y comparar. Pega algunas direcciones de tus registros en el verificador de abuso de IP, o llama al endpoint de consulta desde un script y mide el viaje de ida y vuelta desde donde se ejecutan realmente tus servidores. Mide tu propia latencia y tasa de aciertos en lugar de fiarte de una afirmación general, y decide si las diferencias restantes justifican operar tú mismo una canalización de datos.