[英]Get IP of connection in socket.io 1.4.5
我想知道如何在用户连接到socket.io服务器时获取其IP。 我尝试使用此代码来记录连接地址和端口,如下所示:
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') { } }); });
IP地址位于socket.handshake.address
,而不是socket.handshake.address.address
。
尽管在socket.io中似乎都没有记录这些内容,但是您可以使用以下命令获取远程IP地址和远程端口:
socket.request.connection.remoteAddress
socket.request.connection.remotePort
当我从局域网上的另一台计算机连接到socket.io服务器时,我从以上两个设置中看到了这些输出:
::ffff:192.168.1.56
51210
这正确地为您提供了连接到服务器的远程计算机的IP地址和端口。 IP地址::ffff:192.168.1.56
是IPv4映射的地址。 在某些系统上,您将必须处理该地址形式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.