如何在socket.io中获取客户端IP地址

Tru*_*dia 1 sockets node.js socket.io

嗨,我在更新之前在 socket.io 版本 1.3.7 中获取客户端 IP 地址时遇到问题,但更新后我每次都未定义,这是我在更新前使用的代码

这是我的服务器端代码

sockets.on('connection',function(sock){

var address = sock.handshake.address;
Run Code Online (Sandbox Code Playgroud)

这从客户端发送IP地址

var remote = 'http://my_ip_address:9008/';
    socket = io.connect(!!local ? local : remote);
    socket.on("connect", function () {
    console.log("connected");
            getData();
    });
Run Code Online (Sandbox Code Playgroud)

更新后它在 socket.io 版本 1.3.7 中不起作用所以请帮助我解决这个问题并建议 1.3.7 版本的完美代码

小智 5

我不太喜欢套接字,但我想这会对你有所帮助。

您需要使用address.address和用于端口address.port

sockets.on('connection',function(sock){ 
var address = sock.handshake.address;
      console.log('New connection from ' + address.address + ':' + address.port);
});
Run Code Online (Sandbox Code Playgroud)

对于 Socket.io ver 1.0 服务器端:

sockets.on('connection',function(sock){ 
    var clientIpAddress = sock.request.headers['x-forwarded-for'] || sock.request.connection.remoteAddress;
    console.log(' new request from : '+clientIpAddress);
});
Run Code Online (Sandbox Code Playgroud)