Получить IP-адрес клиента в socket.io - PullRequest
126 голосов
/ 23 июня 2011

При использовании socket.IO на сервере Node.js существует ли простой способ получить IP-адрес входящего соединения? Я знаю, что вы можете получить его из стандартного HTTP-соединения, но socket.io - это немного другой зверь.

Ответы [ 16 ]

3 голосов
/ 23 декабря 2015

Я обнаружил, что в socket.handshake.headers есть адрес , перенаправленный на , который не отображается на моей локальной машине. И я смог получить удаленный адрес, используя:

socket.handshake.headers['x-forwarded-for']

Это на стороне сервера, а не на стороне клиента.

3 голосов
/ 07 августа 2015

Очень просто.Сначала поставьте

io.sockets.on('connection', function (socket) {

console.log(socket);

Вы увидите все поля сокета.затем используйте CTRL + F и найдите адрес слова.Наконец, когда вы найдете поле remoteAddress, используйте точки для фильтрации данных.в моем случае это

console.log(socket.conn.remoteAddress);
2 голосов
/ 07 апреля 2016

на socket.io 1.3.4 у вас есть следующие возможности.

socket.handshake.address * * 1005

socket.conn.remoteAddress или

socket.request.client._peername.address

1 голос
/ 29 сентября 2015

Последняя версия работает с:

console.log(socket.handshake.address);
1 голос
/ 12 апреля 2015

В 1.3.5:

var clientIP = socket.handshake.headers.host;
1 голос
/ 25 июля 2014

использование socket.request.connection.remoteAddress

...