479 votes

Comment puis-je obtenir l'adresse IP de l'utilisateur en utilisant Node.js ?

J'ai un site dans node et j'ai une post sur app.post "/", mycontroller.example et dans ce contrôleur, j'aimerais obtenir l'adresse IP de l'utilisateur qui a envoyé la requête. J'essaie de construire une API.

Toute aide serait grandement appréciée.

Merci

41 votes

Si vous utilisez Express, vous pouvez utiliser req.ip source - expressjs.com/fr/api.html#req.ip

0 votes

51 votes

Pour ceux qui travaillent à partir de localhost - comme je l'ai fait, le résultat pour toutes les réponses ci-dessous (presque toutes les réponses fonctionnent) pourrait venir ::1 . Cela m'a rendu confus pendant un certain temps. J'ai découvert plus tard que ::1 est l'adresse IP réelle et est IPV6 pour localhost. Hope this helps someone

0voto

Shaurya Chhabra Points 34

Dans un shell, vous devez simplement curl https://api.ipify.org

Alors, observons cela pour le porter sur node.js !

curl est une application permettant d'extraire des données de sites web, nous passons le site web "https://api.ipify.org" comme argument. Nous pourrions utiliser node-fetch pour remplacer curl !

Les données que nous obtenons du site web sont notre adresse IP, c'est une sorte de chose qui récupère juste votre IP.

Donc, pour résumer :

const fetch = require('node-fetch');

fetch('https://api.ipify.org')
  .then(response => {/* whatever */})
  .catch(err => {/* whatever */})

-1voto

Mani Ram Points 1

Nous pouvons vérifier avec ce code dans node js

const os       = require('os');
const interfaces = os.networkInterfaces();

let addresses = [];

for (var k in interfaces) {

    for (var k2 in interfaces[k]) {

        const address = interfaces[k][k2];

        if ( (address.family === 'IPv4' || address.family === 'IPv6')  && 
            !address.internal) {

            addresses.push(address.address);

        }
    }
}
console.log(addresses);

-4voto

nishith Points 29

Use(function(req, res, next) { var ipInfo = getIP(req) ; console. log(ipInfo) ; // { clientIp : '127.0. 0.1', clientIpRoutable : false } next() ; }) ;

-10voto

aCo Points 1

J'ai eu le même problème... je suis également novice en javascript mais j'ai résolu le problème avec req.connection.remoteAddress ; qui m'a donné l'adresse IP (mais au format ipv6 ::ffff.192.168.0.101 ) et ensuite .tranche pour supprimer les 7 premiers chiffres.

var ip = req.connection.remoteAddress;

if (ip.length < 15) 
{   
   ip = ip;
}
else
{
   var nyIP = ip.slice(7);
   ip = nyIP;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X