Comment effectuer une recherche sur IP Geolocation dans Express.js
Si vous créez un site web (ou une API) à l'aide d'Express.js, il est souvent utile de savoir d'où viennent vos visiteurs : des États-Unis, de l'Union européenne ou d'ailleurs ? Le processus de localisation d'un internaute est généralement appelé géolocalisation IP et, malheureusement, il n'est pas simple.
La raison pour laquelle il n'est pas facile d'obtenir des données de géolocalisation d'IP est qu'il n'existe pas de cartographie standard des IP -> données de localisation. La plupart des entreprises obtiennent ces données en les achetant à des agrégateurs de géolocalisation IP qui rassemblent de nombreux éléments d'information différents pour constituer une base de données précise de géolocalisation IP.
Les données de géolocalisation IP se composent généralement des éléments suivants :
- Données WHOIS
- Registres Internet régionaux
- Flux BGP (des fournisseurs d'accès à Internet)
- Informations sur la latence recueillies manuellement
En bref : il est pratiquement impossible d'obtenir des données sur IP geolocation sans passer par un agrégateur IP Geolocation.
Aujourd'hui, je vais vous aider à utiliser la bibliothèque de développement express-simple-geoip que j'ai créée et qui et qui permet d'effectuer des recherches sur IP Geolocation en un clin d'œil dans Express.js.
Créez un compte IP Geolocation API Lookup
La première chose à faire pour utiliser la bibliothèque express-simple-geoip est de créer un compte API gratuit sur IP Geolocation : https://ip-geolocation.whoisxmlapi.com/signup.
IP Geolocation APIest l'un des l'un des plus importants et des moins chers. Vous pouvez utiliser le service IP Geolocation API pour effectuer gratuitement 1 000 requêtes IP Geolocation par mois, ou vous pouvez payer un forfait de 27$ par mois pour 100.000 requêtes. Plans tarifaires supplémentaires disponibles ici.
Une fois que vous avez créé votre compte IP Geolocation API et que vous vous y êtes enregistré, vous devez afficher la page des produitsde votre compte et copier votre clé API - vous en aurez besoin ultérieurement pour effectuer des requêtes sur l'IP Geolocation.
Installez le pack express-simple-geoip
Maintenant que votre compte est configuré, la prochaine chose à faire est d'installer la bibliothèque express-simple-geoip NPM . Depuis la ligne de commande lancez la commande suivante :
$ npm install express-simple-geoip
Ceci téléchargera et installera la dernière version du packexpress-simple-geoip de NPM.
Effectuez une recherche sur IP Geolocation en utilisant express-simple-geoip
Maintenant que vous avez un compte et que le pack express-simple-geoip est installé, jetons un coup au code que vous pouvez exécuter pour rechercher l'adresse physique de n'importe quelle adresse IP que vous voulez.
Voici une application Express.js simple qui ne contient qu'un seul point de terminaison, `/test`, qui renvoie une simple réponse "hello world" :
"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 vous placez ce code dans un fichier `server.js` et que vous l'exécutez, vous devriez voir une réponse de type hello world lorsque vous visitez le point de terminaison `/test` dans votre navigateur.
La ligne `app .use` initialise le middleware IpGeolocation de telle sorte qu'à chaque fois qu'une nouvelle requête dans votre serveur Express.js, une recherche IP Geolocation sera effectuée et un nouvel objet `req .geoip` sera ajouté à la requête.
Pour accéder aux données IP Geolocation dans votre code, vous pouvez simplement référencer l'objet `req .geoip` comme suit :
"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 vous exécutez ce nouveau serveur et que vous visitez l'URL `/test` dans votre navigateur, vous devriez voir une nouvelle réponse qui ressemble à quelque chose comme ça :
{
"hello": "world",
"geoip": {
"country": "US",
"region": "California",
"city": "Mountain View",
"lat": 37.40599,
"lng": -122.078514,
"postalCode": "94043",
"timezone": "-08:00"
}
}
Comme vous pouvez le voir, l'objet de données `req.geoip` contient toutes les données IP Geolocation du demandeur ! Pas mal, non ? L'objet `req.geoip` contient tout ce que vous avez tout ce que vous avez besoin de savoir sur l'emplacement physique du demandeur.
Comment utiliser les données de IP Geolocation
Maintenant que vous avez vu à quel point il est simple de faire fonctionner la fonctionnalité de recherche de géolocalisation IP dans vos applications Express.js, voici quelques idées d'utilisation des données de géolocalisation IP dans vos projets et services :
- Détecter le pays d'un utilisateur lorsqu'il visite votre site et lui offrir une expérience personnalisée (changer la langue de la page, afficher certaines publicités, types de devises, etc.)
- Empêcher les utilisateurs de certaines régions de visiter votre site web. Supposons que vous construisiez un service de streaming vidéo comme YouTube et que vous n'ayez le droit de montrer certaines vidéos qu'aux utilisateurs des États-Unis. Dans ce cas, les données de géolocalisation d'IP pourraient vous aider à détecter l'emplacement d'un utilisateur afin de filtrer les utilisateurs non américains.
- Réduisez la fraude et les risques. Si vous remarquez que beaucoup de trafic malveillant provient d'un pays spécifique, bloquer temporairement les visiteurs en provenance de ce pays peut être un moyen rapide d'éviter la fraude et d'autres problèmes.
Terminer express-simple-geoip
Effectuer des recherches sur IP Geolocation peut s'avérer délicat, mais express-simple-geoip en conjonction avec l'option IP Geolocation le rend simple et peu coûteux. En utilisant la nouvelle bibliothèque express-simple-geoip, vous pouvez facilement construire et gérer les recherches sur IP Geolocation, même pour les plus grands sites d'entreprise.
Pour en savoir plus, allez voir la bibliothèque express-simple-geoip sur GitHub où vous trouverez toutes les et des informations plus détaillées : https://github.com/whois-api-llc/express-simple-geoip
Si vous avez des questions, n'hésitez pas à nous envoyer un e-mail !