如何在socket io中获取ip
Posted
技术标签:
【中文标题】如何在socket io中获取ip【英文标题】:How to get ip in socket io 【发布时间】:2015-09-05 04:00:25 【问题描述】:var app = require("express")();
var server = require("http").Server(app);
var io = require("socket.io")(server);
var requestIp = require('request-ip');
server.listen(3000);
var ipMiddleware = function(req, res)
return requestIp.getClientIp(req);
;
var ip = null;
app.get("/", function (req, res)
ip = ipMiddleware(req, res);
res.sendFile(__dirname + "/index.html");
);
io.on("connection", function (socket)
// send the ip to user
);
我的问题是,我想用 express 获取客户端的 ip 地址并将 ip 地址发送给客户端,ips 应该是不同的,我怎样才能发出我用 express 获得的 ip?谢谢你
【问题讨论】:
试试socket.request.connection.remoteAddress
@laggingreflex 有没有可能我得到远程地址 null ?谢谢你的回答
Try one of these(注意,req
≈socket.request
)
【参考方案1】:
你可以使用这样的东西。我在这里使用socket.io
方法获取客户端ip地址。
io.on("connection", function (socket)
var clientIp = socket.request.connection.remoteAddress;
socket.emit('eventName',ip : clientIp); //emit it back to client
);
查看此*** thread 了解如何获取不同socket.io
版本的客户端IP。
【讨论】:
以上是关于如何在socket io中获取ip的主要内容,如果未能解决你的问题,请参考以下文章
如何将客户端的正确 IP 地址获取到 Heroku 上托管的 Node socket.io 应用程序中?
如何使用IO :: Socket :: SSL获取自己的服务器IP地址