因此,我可能在这里遗漏了一些简单的东西,但我似乎找不到一种方法来获取我正在向其发送响应的请求对象所请求的主机名。
是否有可能找出用户当前从node.js访问的主机名?
因此,我可能在这里遗漏了一些简单的东西,但我似乎找不到一种方法来获取我正在向其发送响应的请求对象所请求的主机名。
是否有可能找出用户当前从node.js访问的主机名?
当前回答
这是备选方案
req.hostname
在《快速文档》上读到。
其他回答
如果你需要一个完全限定的域名,并且没有HTTP请求,在Linux上,你可以使用:
var child_process = require("child_process");
child_process.exec("hostname -f", function(err, stdout, stderr) {
var hostname = stdout.trim();
});
你可以使用os Module:
var os = require("os");
os.hostname();
看到http://nodejs.org/docs/latest/api/os.html os_os_hostname
警告:
如果你能用IP地址 机器可能有几个网卡,除非你指定了它,否则节点会监听所有的网卡,所以你不知道请求是在哪个网卡上传入的。 主机名是DNS的问题 不要忘记,多个DNS别名可以指向同一台机器。
如果你在谈论一个HTTP请求,你可以在下面找到请求主机:
request.headers.host
但这依赖于传入请求。
更多信息请访问http://nodejs.org/docs/v0.4.12/api/http.html#http.ServerRequest
如果您正在寻找机器/本机信息,请尝试process对象。
我认为你想要的是识别跨源请求,你应该使用Origin头文件。
const origin = req.get('origin');
使用这个你可以得到一个请求客户端URL
这是备选方案
req.hostname
在《快速文档》上读到。