繁体   English   中英

在socket.io 1.4.5中获取连接的IP

[英]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') { } }); }); 
当我运行此代码时,虽然address.address未定义,并且与address.port相同。 那么当我使用1.4.5时应该如何获取IP和端口? 我找不到任何新近更新的东西。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM