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

问题描述:

您好我有socket.io版本1.3.7中获取客户端IP地址之前更新其完美的工作,但更新后我得到每次未定义这是我的代码是我更新如何在socket.io中获取客户端IP地址

之前使用,这是我的服务器端

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

var address = sock.handshake.address; 

这个代码从客户端更新后,发送IP地址

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

它不是在socket.io版本1.3.7使工作p租赁帮助我解决这个问题,并建议完美的代码为1.3.7版本

+0

'sock.handshake.address '应该是客户端的IP地址。它适用于socket.io 1.4.5。它可能会以IPv6格式显示,具体取决于您的系统配置。 – jfriend00

+0

身份证有新的版本的socket.io客户端连接的任何变化,我的客户端连接套接字的代码是完美的或不,如果你有任何想法,所以请告诉我,我不能得到IP地址 –

+0

从服务器,这里是你如何检索各种IP地址的东西:http://stackoverflow.com/questions/38423930/how-to-retrieve-client-and-server-ip-address-and-port-number-in-node-js/ 38426473?noredirect = 1#comment64286103_38426473 – jfriend00

我没有太多的插座,但我想这会帮助你。

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

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

而对于Socket.io版本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); 
}); 
+0

非常感谢 - 花费太多时间搜索服务器端解决方案 – user1274820