在 NestJS 中,从请求上下文中获取 IP 地址的方法如下:
Request
对象。
import { Controller, Get, Request } from '@nestjs/common';Request
对象来获取客户端 IP 地址。在控制器方法的参数中注入 Request
对象,然后可以通过 request.ip
获取 IP 地址。
@Controller() export class AppController { @Get() getIPAddress(@Request() request) { const ipAddress = request.ip; return { ipAddress }; } }
在这个例子中,当用户访问 /
路由时,控制器将返回客户端 IP 地址。
请注意,request.ip
通常会返回客户端的 IP 地址,但如果你的应用程序位于代理服务器(如 Nginx)后面,可能需要从 X-Forwarded-For
头部获取真实的客户端 IP。在这种情况下,可以参考以下代码:
@Controller() export class AppController { @Get() getIPAddress(@Request() request) { const ipAddress = request.headers['x-forwarded-for'] || request.ip; return { ipAddress }; } }
这样,如果 X-Forwarded-For
头部存在,它将优先于 request.ip
提供客户端 IP 地址。领取专属 10元无门槛券
手把手带您无忧上云