获取套接字中连接的IP.io 1.4.5

Get IP of connection in socket.io 1.4.5

本文关键字:io IP 套接字 连接 获取      更新时间:2023-09-26

我想知道如何获得用户的IP,当他们连接到服务器n socket.io。我已经尝试使用这段代码,它应该记录连接地址和端口,像这样:

var io = require('socket.io')(serv, {});
io.sockets.on('connection', function(socket) {
  var address = socket.handshake.address;
  console.log('New connection from ' + address.address + ':' + address.port);
  socket.on('request', function(data) {
    console.log('Request Sent')
    length = data.length
    if (data.request == 'sessionID') {
      socket.emit('sendSessionID', {
        id: generateSessionID(length)
      });
      console.log('Sent session ID')
    }
    if (data.request == 'players') {
    }
  });
});
当我运行这段代码时。Address未定义,与Address .port相同。那么,当我使用1.4.5时,我应该如何获得IP和端口?我找不到任何新更新的

IP地址是socket.handshake.address,不是socket.handshake.address.address


虽然这些似乎都没有在socket中记录。使用

命令可以获取远程IP地址和远程端口。
socket.request.connection.remoteAddress
socket.request.connection.remotePort

当我连接到套接字时。从我的局域网的另一台计算机上的io服务器,我看到上面两个设置的输出:

::ffff:192.168.1.56
51210

这将正确地为您提供连接到服务器的远程计算机的IP地址和端口。"::ffff:192.168.1.56"为IPv4映射地址。在某些系统上,您必须处理这种形式的地址。