首页 > 代码库 > socket.io获取客户端的IP地址(修正官方1.0.4版本BUG)
socket.io获取客户端的IP地址(修正官方1.0.4版本BUG)
之前我有看过别人写的文章,说到如何获取客户端IP地址,代码如下:
var io = require("socket.io").listen(server);io.sockets.on("connection", function (socket) { var address = socket.handshake.address; console.log("New connection from " + address.address + ":" + address.port);});
这是在0.9.x版本是可以正确获取到客户端IP地址的。
但是当你使用1.0.4版本的时候发现获取到的IP地址是本地服务器绑定的IP.
查过官方的API文档但是没有介绍关于IP地址如何获取的。所以只好自己修改源码了。
===================================================
现在修改socket.io的模块源码以获取真实IP地址,并保留原有代码的兼容性。
打开/node_modules/socket.io/lib/socket.js文件
在110行找到代码
address: this.request.connection.address(),
修改为
address: {‘address‘:this.request.connection.remoteAddress,‘port‘:this.request.connection.remotePort},
只要改一个文件,然后重启node,就可以用了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。