Loopback从操作挂钩获取IP地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Loopback从操作挂钩获取IP地址相关的知识,希望对你有一定的参考价值。

那么,那个XD,如何从操作钩子中获取查询器的IP地址(如果那甚至是单词xD)?还是一个远程钩子? (我可以用loopback.getCurrentContext()保存它以在操作钩子上使用)。

说:

Model.observe('loaded', function(ctx,next) {
   ctx.ip ??
});
答案

所以我发现了这个:https://github.com/strongloop/loopback/issues/1495&this:How to determine a user's IP address in node来自两者的很大帮助,我只需要获取地址并将其保存在启动脚本上的环回当前上下文中:

var loopback = require('loopback'); 

module.exports = function (app) {     

  app.remotes().before('*.*', function(ctx,next) {
    loopback.getCurrentContext().set('remoteAddress',ctx.req.connection.remoteAddress);
    next();
  });

  app.remotes().before('*.prototype.*', function(ctx,instance,next) {
    loopback.getCurrentContext().set('remoteAddress',ctx.req.connection.remoteAddress);
    next();
  });
};

然后我就在这样的操作钩子上得到它:

Model.observe('loaded', function(ctx,next) {
   console.log("Remote Address: ", loopback.getCurrentContext().get('remoteAddress'));
});
另一答案

您还应该在server.js中添加此代码以授予真正的IP,否则您将获得负载均衡器IP:

app.set('trust proxy', ['loopback', 'linklocal', 'uniquelocal']);

https://expressjs.com/en/guide/behind-proxies.html

另一答案

环回3的更新:您可以使用此属性获取IP地址:

ctx.req.connection.remoteAddress

以上是关于Loopback从操作挂钩获取IP地址的主要内容,如果未能解决你的问题,请参考以下文章

Loopback接口

用IP地址的用途理解Loopback接口

用IP地址的用途理解Loopback接口

localhost,127.0.0.1 和 本机IP 三者的区别

Linux云主机获取本机公网IP地址

系统设置了静态IP之后还会获取动态IP的问题解决