var ip = req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress;
Notez que parfois vous pouvez obtenir plus d'une adresse IP dans req.headers['x-forwarded-for'].
Le format général du champ est le suivant :
x-for : client, proxy1, proxy2, proxy3
où la valeur est une liste d'adresses IP séparées par des virgules et des espaces, la plus à gauche étant le client d'origine, et chaque proxy successif qui a transmis la demande ajoutant l'adresse IP d'où il a reçu la demande. Dans cet exemple, la requête est passée par proxy1
, proxy2
et ensuite proxy3
. proxy3
apparaît comme l'adresse distante de la demande.
41 votes
Si vous utilisez Express, vous pouvez utiliser
req.ip
source - expressjs.com/fr/api.html#req.ip0 votes
Essayez ça : github.com/indutny/node-ip
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 estIPV6
pour localhost.Hope this helps someone