Maison > interface Web > js tutoriel > IP de l'API requérante

IP de l'API requérante

Linda Hamilton
Libérer: 2024-12-21 17:07:10
original
135 Les gens l'ont consulté

IP of Requesting API

Récupération de l'adresse IP du client dans Express.js

Express.js, un framework Node.js populaire, simplifie le processus de création d'applications Web. Pour obtenir l'adresse IP du client au sein d'une application Express, vous pouvez accéder à la propriété req.ip fournie par le framework. Toutefois, dans les scénarios où votre application se trouve derrière un proxy ou un équilibreur de charge, l'adresse IP du client peut être stockée dans l'en-tête X-Forwarded-For. Pour récupérer avec précision l'adresse IP du client dans de tels cas, envisagez l'approche suivante :

const express = require('express');
const app = express();

app.use((req, res, next) => {
  const clientIp = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
  console.log(`Client IP: ${clientIp}`);
  next();
});

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});
Copier après la connexion

Dans cette configuration, la fonction middleware capture l'adresse IP du client à partir de l'en-tête X-Forwarded-For s'il est présent ; sinon, il revient à req.connection.remoteAddress. Cela garantit que vous obtenez la bonne adresse IP quel que soit l'environnement de déploiement de votre application.

Amélioration des données IP avec IPQuery

Une fois que vous avez obtenu l'adresse IP du client, enrichir ces données avec des informations de géolocalisation et d'évaluation des risques peut fournir des informations précieuses. IPQuery est une API robuste conçue pour les développeurs, offrant des fonctionnalités telles que la détection VPN, la géolocalisation et la veille sur les menaces. Prenant en charge IPv4 et IPv6, IPQuery offre des recherches rapides avec une faible latence, ce qui en fait un excellent choix pour les applications en temps réel.

Configuration d'IPQuery dans votre application Express

Pour intégrer IPQuery dans votre application Express, suivez ces étapes :

  1. Installer le client HTTP Axios

Axios est un client HTTP basé sur des promesses pour Node.js, facilitant les requêtes HTTP. Installez-le en utilisant npm :

   npm install axios
Copier après la connexion
  1. Créer une fonction pour interroger IPQuery

Développer une fonction qui envoie une requête à l'API IPQuery et traite la réponse :

   const axios = require('axios');

   async function getIpInfo(ip) {
     try {
       const response = await axios.get(`https://api.ipquery.io/${ip}?format=json`);
       return response.data;
     } catch (error) {
       console.error(`Error fetching IP information: ${error}`);
       return null;
     }
   }
Copier après la connexion
  1. Intégrez IPQuery dans votre middleware

Modifiez votre middleware Express pour utiliser la fonction getIpInfo :

   app.use(async (req, res, next) => {
     const clientIp = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
     const ipInfo = await getIpInfo(clientIp);
     if (ipInfo) {
       console.log(`Client IP: ${clientIp}`);
       console.log(`Location: ${ipInfo.location.city}, ${ipInfo.location.country}`);
       console.log(`ISP: ${ipInfo.isp.org}`);
       console.log(`Risk Score: ${ipInfo.risk.risk_score}`);
     }
     next();
   });
Copier après la connexion

Ce middleware récupère l'adresse IP du client, récupère des informations détaillées à partir d'IPQuery et enregistre les détails pertinents tels que l'emplacement, le FAI et le score de risque.

Comprendre la structure de réponse d'IPQuery

IPQuery fournit une réponse JSON complète contenant divers points de données :

{
  "ip": "1.1.1.1",
  "isp": {
    "asn": "AS13335",
    "org": "Cloudflare, Inc.",
    "isp": "Cloudflare, Inc."
  },
  "location": {
    "country": "Australia",
    "country_code": "AU",
    "city": "Sydney",
    "state": "New South Wales",
    "zipcode": "1001",
    "latitude": -33.854548400186665,
    "longitude": 151.20016200912815,
    "timezone": "Australia/Sydney",
    "localtime": "2024-09-03T22:22:52"
  },
  "risk": {
    "is_mobile": false,
    "is_vpn": false,
    "is_tor": false,
    "is_proxy": false,
    "is_datacenter": true,
    "risk_score": 0
  }
}
Copier après la connexion

Les composants clés incluent :

  • IP : L'adresse IP interrogée.
  • FAI : informations sur le fournisseur d'accès Internet, y compris l'ASN, l'organisation et le nom du FAI.
  • Emplacement : données géographiques telles que le pays, la ville, l'état et les coordonnées.
  • Risque : indicateurs de risques potentiels, notamment si l'adresse IP est associée à des réseaux mobiles, des VPN, des nœuds Tor, des proxys, des centres de données et un score de risque global.

Pour des informations plus détaillées, reportez-vous à la documentation IPQuery.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal