如何从请求中获取客户端的ip?

How to get the client's ip from the request?

我想在发出请求时获取客户端的 ip 地址

但我总是得到相同的结果:

::1

如何准确获取客户端的ip地址,我从不同的设备发出请求,结果都是一样的

  @Get(':id')
  async get(@Req() request: Request, @Param('id') id: string) {
    console.log(request.ip);
    return this.adService.findOne({ id });
  }

请求object包含一个名为socket的属性,实际上是一个net.Socketobject。这个 object 有一个 remoteAddress 属性 保存调用的 IP 地址。

request.socket.remoteAddress

另请注意,如果服务器在代理后面,您应该使用请求 headers request.headers['x-forwarded-for']