Cómo realizar una búsqueda IP Geolocation en Express.js
Si está construyendo un sitio web (o API) utilizando Express.js, a menudo resulta útil saber de dónde proceden sus visitantes: ¿de EE.UU., de la UE, de algún otro lugar? El proceso de localización de un usuario web se conoce normalmente como IP geolocation, y por desgracia, no es sencillo.
La razón por la que no es fácil obtener datos de IP geolocation es que no existe un mapeo estándar de IP -> datos de ubicación. La mayoría de las empresas obtienen estos datos comprándolos a agregadores de IP Geolocation que reúnen muchos datos diferentes para crear una base de datos precisa de IP geolocation .
Los datos IP Geolocation suelen estar compuestos por:
- Datos WHOIS
- Registros regionales de Internet
- Feeds BGP (de proveedores de servicios de Internet)
- Información de latencia recopilada manualmente
En resumen: es básicamente imposible obtener datos de IP geolocation sin pasar por un agregador de IP Geolocation .
Hoy le guiaré a través de la sencilla biblioteca para desarrolladores express-simple-geoip que creé y que hace que realizar búsquedas IP Geolocation sea pan comido en Express.js.
Cree una cuenta de búsqueda IP Geolocation API
Lo primero que tendrá que hacer para utilizar la biblioteca express-simple-geoip es crear una cuenta gratuita de la IP Geolocation API: https://ip-geolocation.whoisxmlapi.com/signup.
IP Geolocation API es uno de los mayores proveedores de geolocalización IP y de los más económicos. Puede utilizar el servicio IP Geolocation API para realizar 1.000 consultas gratuitas de IP Geolocation cada mes, o puede pagar una tarifa plana de 27 dólares al mes por 100.000 consultas. Planes de tarifas adicionales disponibles aquí.
Una vez que haya creado e iniciado sesión en su cuenta IP Geolocation API, tendrá que ver la página de productos de su cuenta y copiar su clave API: la necesitará más adelante para realizar consultas IP Geolocation .
Instale el paquete express-simple-geoip
Ahora que su cuenta está configurada, lo siguiente que debe hacer es instalar la biblioteca NPM express-simple-geoip. Desde la línea de comandos, ejecute el siguiente comando:
$ npm install express-simple-geoip
Esto descargará e instalará la última versión del paquete express-simple-geoip desde NPM.
Realice una búsqueda IP Geolocation utilizando express-simple-geoip
Ahora que ya tiene una cuenta y el paquete express-simple-geoip instalado, echemos un vistazo al código que puede ejecutar para buscar la dirección física de cualquier dirección IP que desee.
He aquí una sencilla aplicación Express.js que solo contiene un único endpoint, `/test`, que devuelve una simple respuesta hola, mundo:
"use strict";
const express = require("express");
const IpGeolocation = require("express-simple-geoip");
let app = express();
app.use(IpGeolocation("<your-api-key-here>"));
app.get("/test", (req, res) => {
res.json({ hello: "world" });
});
app.listen(3000);
Si pone este código en un archivo `server.js` y lo ejecuta, debería ver una respuesta hola, mundo cuando visite el endpoint `/test` en su navegador.
La línea `app.use` inicializa el middleware IpGeolocation para que cada vez que llegue una nueva petición a su servidor Express.js, se realice una búsqueda IP Geolocation y un nuevo objeto `req.geoip se adjunte a la petición.
Para acceder a los datos de IP Geolocation en su código, puede simplemente hacer referencia al objeto `req.geoip` así:
"use strict";
const express = require("express");
const IpGeolocation = require("express-simple-geoip");
let app = express();
app.use(IpGeolocation("<your-api-key-here>"));
app.get("/test", (req, res) => {
res.json({ hello: "world", geoip: req.geoip });
});
app.listen(3000);
Si ejecuta este nuevo servidor y visita la URL `/test` en su navegador, debería ver una nueva respuesta similar a esto:
{
"hello": "world",
"geoip": {
"country": "US",
"region": "California",
"city": "Mountain View",
"lat": 37.40599,
"lng": -122.078514,
"postalCode": "94043",
"timezone": "-08:00"
}
}
Como puede ver, ¡el objeto de datos `req.geoip` contiene todos los ¡datos IP Geolocation del solicitante! Bastante bien, ¿no? El objeto `req.geoip` contiene todo lo que necesita saber sobre la ubicación física del solicitante.
Cómo utilizar los datos de IP Geolocation
Ahora que ha visto lo sencillo que puede ser conseguir que la funcionalidad de búsqueda de IP Geolocation funcione en sus aplicaciones Express.js, aquí tiene algunas ideas de formas en las que puede utilizar los datos de IP Geolocation en sus proyectos y servicios:
- Detecte el país de un usuario cuando visita su página y ofrezca una experiencia personalizada (cambiar el idioma de la página, mostrar determinados anuncios, tipos de moneda, etc.)
- Bloquee a los usuarios de determinadas ubicaciones para que no visiten su sitio web. Supongamos que está creando un servicio de streaming de vídeo como YouTube y solo tiene los derechos para mostrar ciertos vídeos a usuarios de Estados Unidos. En este caso, disponer de los datos de IP Geolocation podría ayudarle a detectar la ubicación de un usuario para que usted pueda filtrar a los usuarios que no sean estadounidenses.
- Reduzca el fraude y el riesgo. Si observa mucho tráfico malicioso procedente de un país concreto, bloquear temporalmente a los visitantes de ese lugar puede ser una forma rápida de evitar fraude y otros problemas.
Conclusión express-simple-geoip
Realizar búsquedas IP Geolocation puede ser complicado, pero express-simple-geoip junto con la función IP Geolocation lo hace sencillo y barato. Utilizando la nueva biblioteca express-simple-geoip podrá fácilmente construir y gestionar búsquedas IP Geolocation incluso para los sitios empresariales más grandes.
Para obtener más información, consulte la biblioteca express-simple-geoip en GitHub, donde encontrará todos los documentos y más información en profundidad: https://github.com/whois-api-llc/express-simple-geoip
Si tiene alguna pregunta, envíenos un correo electrónico