Node.js | Bibliotecas para desarrolladores | IP Geolocation API | WhoisXML API

Biblioteca cliente Node.js IP Geolocation Biblioteca cliente Node.js IP Geolocation

Cómo realizar una búsqueda IP Geolocation con Node.js

En este artículo voy a guiarle a través de la mejor manera posible de encontrar la ubicación física de una dirección IP utilizando Node.js (también conocido como IP geolocation).

Por desgracia, no existe una forma estándar de averiguar dónde se encuentra físicamente una dirección IP. En su lugar, las empresas denominadas proveedores de IP Geolocation agregan muchos datos diferentes para construir una base de datos precisa de datos de localización IP.

Los datos IP Geolocation suelen estar compuestos por:

  • Los datos WHOIS de los dominios (que a su vez deben ser agregados por los proveedores de datos)
  • Registros regionales de Internet, que reparten reparten grandes bloques de direcciones IP a varios proveedores de servicios de Internet de todo el mundo (ISP)
  • Feeds BGP de grandes ISP
  • Información sobre la latencia (cuánto tarda un paquete procedente de determinadas ubicaciones físicas en llegar a la IP de destino

Aunque conseguir toda la información anterior es muy complicado y caro para que lo haga uno mismo, por suerte hay unos cuantos grandes proveedores de servicios que ya han hecho este trabajo y venden datos IP Geolocation que puede consumir fácilmente.

Hoy le mostraré cómo utilizar nuestra recién lanzada biblioteca simple-geoip Node.js para realizar una búsqueda en la base de datos IP Geolocation y devolver la ubicación física de cualquier dirección IP que desee localizar.

Cree una cuenta de búsqueda IP Geolocation API

Lo primero que tendrá que hacer para utilizar la biblioteca simple-geoip es crear una cuenta gratuita IP Geolocation API: https://ip-geolocation.whoisxmlapi.com/signup.

IP Geolocation API es uno de los mayores proveedores de IP Geolocation y de los más económicos. Puede utilizar el servicio IP Geolocation API para realizar 1.000 consultas gratuitas 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 simple-geoip

Ahora que su cuenta está configurada, lo siguiente que debe hacer es instalar el paquete Node. Desde la línea de comandos, ejecute el siguiente comando:

            
$ npm install simple-geoip
            
            

Esto descargará e instalará la última versión del paquete simple-geoip de NPM.

Realice una búsqueda en IP Geolocation utilizando simple-geoip

Ahora que ya tiene una cuenta y el paquete simple-geoip instalado, echemos un vistazo a algo de código que puede ejecutar para buscar la dirección física de cualquier dirección IP que desee.

He aquí un pequeño script, `geoip.js`, que encontrará la ubicación física de una dirección IP popular (`8.8.8.8`, uno de los servidores DNS centrales de Google):

            
const IpGeolocation = require("simple-geoip");
 


let ipGeolocationLookup  = new IpGeolocation("your-api-key");

ipGeolocationLookup.lookup("8.8.8.8", (err, data) => {
   if (err) throw err;

   console.log(data);

});
            
            

Como puede ver, en realidad sólo hay tres pasos para utilizar la biblioteca:

  • Importar la biblioteca
  • Cree un objeto `IpGeolocation` al darle su clave API, que se creó cuando se registró en el servicio IP Geolocation API.
  • Ejecute el método `lookup`, pasando la dirección IP que desea verificar y una función callback. Esta función callback es la que se ejecutará cuando la búsqueda en IP Geolocation haya finalizado.

Los datos que se devuelven en la función callback tendrán este aspecto:

            
{
   "ip": "8.8.8.8",
   "location": {
      "country": "US",
      "region": "California",
      "city": "Mountain View",
      "lat": 37.40599,
      "lng": -122.078514,
      "postalCode": "94043",
      "timezone": "-08:00"
   }
}
            
            

Estos datos JSON le indican todo lo que necesita saber sobre la ubicación física de la dirección IP `8.8.8.8`.

Entre bastidores, el servicio IP Geolocation API se encarga de todas las búsquedas en la base de datos IP Geolocation y de la agregación: obtener los datos de los proveedores y procesar millones de actualizaciones al día.

Personalización del comportamiento de búsqueda de IP Geolocation en simple-geoip

Una de las cosas buenas de la biblioteca simple-geoip Node.js es que reintenta automáticamente las peticiones fallidas hasta cinco veces seguidas.

Por ejemplo, supongamos que está intentando realizar una solicitud de búsqueda en IP Geolocation y su conexión a Internet se pierde a mitad de camino. En lugar de un simple error, simple-geoip lookup reintentará la solicitud para para darle otra oportunidad.

En caso de que prefiera que la biblioteca simple-geoip *no* reintente las peticiones fallidas, puede pasar algunos datos de configuración opcionales al crear la instancia de búsqueda `IpGeolocation` de este modo:

            
const IpGeolocation = require("simple-geoip");



let ipGeolocationLookup  = new IpGeolocation("your-api-key", { retries: 2 });

ipGeolocationLookup.lookup("8.8.8.8", (err, data) => {

   if (err) throw err;

   console.log(data);

});
            
            

Puede establecer la cantidad de `reintentos` en cualquier número entre `0` y tantos como desee. Pero tenga en cuenta lo siguiente: cuantos más reintentos permita, más lenta será una petición en caso de fallo.

Mientras que los reintentos son útiles cuando haya cortes parciales de red, si hay una interrupción grave puede que sea mejor descartar el error desde el principio sin perder mucho tiempo reintentando las peticiones fallidas. El comportamiento de reintento por defecto (cinco reintentos) suele ser una buena opción para la mayoría de la gente.

Utilice sus nuevos datos IP Geolocation

Ahora que ha visto lo fácil que es encontrar la ubicación física de las direcciones IP utilizando la biblioteca simple-geoip,     debería empezar a implementar las búsquedas IP Geolocation en su producto o servicio.

Algunos casos de uso realmente comunes para los datos IP Geolocation incluyen:

  • Detectar el país de un usuario cuando visita su sitio web y ofrecerle una experiencia personalizada para ello en función de su ubicación (idioma, anuncios, diseño, moneda, etc.)
  • Bloquee el acceso a su sitio web a los usuarios de determinadas ubicaciones. Por ejemplo, si tiene un servicio de streaming y solo tiene derechos para emitir en un país concreto, las búsquedas IP Geolocation pueden proporcionarle esos datos para que sólo pueda atender a los clientes de las regiones en las que puede operar legalmente.
  • Mitigación de fraude y de riesgos. Si observa una gran cantidad de fraude procedente de una ubicación específica, bloquear temporalmente a los visitantes de esa ubicación puede ser una forma rápida de ayudar a mitigar el fraude y otros problemas.

Al analizar las direcciones IP de los visitantes de su sitio web puede mejorar enormemente cualquier producto y servicios.

Utilice simple-geoip

Para concluir: realizar búsquedas IP Geolocation no tiene por qué ser difícil ni caro. Utilizando nuestro nuevo simple-geoip Node.js y el servicio IP Geolocation API puede fácilmente construir y gestionar incluso un gran producto web por muy poco dinero.

Si necesita realizar búsquedas IP Geolocation, consulte la página simple-geoip ya que hace que la búsqueda de direcciones IP sea increíblemente sencilla.

Si tiene alguna pregunta, envíenos un correo electrónico.