Comment obtenir l'adresse IP du client avec WebSocket (websockets/ws) la bibliothèque de Node.js?
Je ne trouve pas l'IP du client paramètre sur l'objet client.
- websocket._socket.remoteAddress
Vous devez vous connecter pour publier un commentaire.
Je ne trouve pas l'IP du client paramètre sur l'objet client.
Vous devez vous connecter pour publier un commentaire.
Après un peu de déconner à essayer de comprendre qui l'on donne au client (navigateur web) de l'adresse IP, la réponse est:
Ou si vous avez accès à
req
viawss.on('connection', (ws, req) => {})
:Vous pouvez l'utiliser, par exemple, à GeoIP de localiser l'endroit où l'utilisateur se connecte.
Edit:
Si vous êtes en cours d'exécution Nœud derrière un reverse proxy Nginx (ou tout autre proxy inverse d'ailleurs), vous devrez peut-être utiliser:
Une note sur la sécurité: Si votre serveur de Nœud est disponible directement ainsi que par le reverse proxy, vous pouvez vérifier la
remoteAddress
avant d'approuverx-forwarded-for
. L'adresse distante doit être votre reverse proxy IP. Il y a l'étrange hasard quelqu'un pouvait appeler votre service directement et usurperx-forwarded-for
.forwarded-for
bibliothèque dans mnp qui le fait automatiquement pour vous, pour la plupart des proxys inverses et les informations d'adresse ip sur le Nœud de sockets comme il a changé quelques fois.upgradeReq
est supprimé dans la v3.0.0+req
de. Mon code est:const server = new websocket.Server(conf.ws); server.on('connection', (ws) => { ...
.Eu cette impression à la clé du support de l'objet:
Je n'ai pas de documentation, donc je ne suis pas sûr que c'est pris en charge sur les versions :/