我有两个应用程序,一个是前端(react.js),另一个是REST API后端(基于express.js的nest.js)。当前端客户端向后端发出请求时,如何获取访问后端的用户的IP地址?
我检查了此问题并尝试了解决方案
With separate client and server apps, how do I get a user's IP address, in Node with Koa?
Express.js: how to get remote client address
但我得到的是前端的服务器IP,而不是客户端IP。
有没有一种方法没有任何变化的前端应用程序,我得到真实的的客户端IP在nest.js?
4条答案
按热度按时间8gsdolmq1#
根据NestJS文档,有一个装饰器可以用来获取请求的IP地址,它的用法如下:
下面是可以使用的装饰器的完整列表:https://docs.nestjs.com/custom-decorators
xlpyo6sf2#
您可以从
Request
对象中提取IP地址。我使用它作为一个中间件打印用户的IP地址在日志条目,这里是我如何做到这一点:
raogr8fs3#
您可以安装一个名为
request-ip
的库:在
main.ts
文件中,在应用中注入request-ip中间件:现在您可以从请求对象访问clientIp:
另一种方法是定义一个装饰器:
你可以在控制器中使用装饰器:
在github中检查以下问题。
bbuxkriu4#
如果您可以使用第三方库。您可以检查request-ip
https://github.com/pbojinov/request-ip