Node.js如何获取侦听特定端口的http服务器的IP地址
问题描述:
我有一个HTTP服务器的以下非常基本的代码,它正在端口8000上侦听。如何确定服务器的IP地址,是否可以从'服务器'变量检索?我正在一个应用程序,我需要自动发送服务器信息(IP,端口等..)到redis商店。Node.js如何获取侦听特定端口的http服务器的IP地址
我是新来的node.js,感谢您的帮助
var http = require("http");
var server = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
response.write("Hello!!!");
response.end();
});
server.listen(8000);
console.log("Server is listening....");
答
假设你希望你的服务器被绑定到地址,就可以使用server.address.address
来获得IP地址服务器是绑定的。同样,您可以使用server.address.port
来获取服务器绑定的端口号。
答
使用以下命令:
server.address()
哪些日志是这样的:
{ address: '0.0.0.0', family: 'IPv4', port: 8080 }
要登录服务器的IP到控制台,使用:
console.log(server.address().address);
+1
这是正确的答案,因为'address'是一个方法,而不是一个属性 – divillysausages
它不工作就返回0.0.0.0 ip地址。任何想法? {“address”:“0.0.0.0”,“family”:“IPv4”,“port”:8000} – Sohaib
From:http://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback。如果你没有传递一个主机名来绑定它,它将默认绑定到0.0.0.0。由于您只指定端口,因此默认情况下它将绑定到0.0.0.0,并且server.address中返回的对象将是正确的。 –
请参阅Alistair MacDonald的回答:server.address()。address,not server.address.address –