Http 节点获取remoteAddress使用的IP

Http 节点获取remoteAddress使用的IP,http,networking,node.js,tcp,udp,Http,Networking,Node.js,Tcp,Udp,我有3个简单的NodeJS服务器,分别使用gn-NET、HTTP和UDP。每个服务器侦听端口X,但有多个IP地址。我想在客户端连接到服务器时检索服务器的实际IP地址(客户端连接到的IP,客户端连接到服务器时必须写入的IP) Thx.如果不指定主机名,服务器将在0.0.0.0启动。所以你可能得不到你想要的结果。对于HTTP,您可以使用HTTP“主机”头[自HTTP/1.1以来必须使用]这可能对您的情况有帮助 您仍然可以尝试以下方法: socket.address() 返回由报告的套接字的绑定地址

我有3个简单的NodeJS服务器,分别使用gn-NET、HTTP和UDP。每个服务器侦听端口X,但有多个IP地址。我想在客户端连接到服务器时检索服务器的实际IP地址(客户端连接到的IP,客户端连接到服务器时必须写入的IP)


Thx.

如果不指定主机名,服务器将在0.0.0.0启动。所以你可能得不到你想要的结果。对于HTTP,您可以使用HTTP“主机”头[自HTTP/1.1以来必须使用]这可能对您的情况有帮助

您仍然可以尝试以下方法:

socket.address()
返回由报告的套接字的绑定地址和端口 操作系统。返回具有两个属性的对象,例如。 {“地址”:“192.168.57.1”,“端口”:62053}

以下是tcp的一个示例:

var netService = require('net').createServer(function(socket) {
 address = netService.address();
 console.log("Stream on %j", socket.address());
 console.log("opened server on %j", address);
});
netService.listen(8001);
http的示例:

var httpService = require('http').createServer(function(req, res){
console.log("Stream on %j", req.connection.address());
    res.end("Hi");
});
httpService.listen(8000);

socket.address()是我想要的:)。我不知道我怎么会错过:)。好吧。。。我想我得给你+50。请根据要求编写UDP和HTTP的示例。Thx.预计至少1票以上:)开玩笑:D。无论如何,我将在一两天内向您发送UDP和HTTP的示例,届时我将从当前的ProdQA阶段获得休息。
var httpService = require('http').createServer(function(req, res){
console.log("Stream on %j", req.connection.address());
    res.end("Hi");
});
httpService.listen(8000);