如何在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(注意,reqsocket.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地址

Ionic 4 IOS Socket.io 如何动态获取配置

如何在 socket.io 1.0 中获取房间的客户列表

如何在客户端中获取 socket.io 客户端的会话 ID

如何获取 boost::asio::ip::tcp::socket 的 IP 地址?