{

NestJS How to get client IP from the request with code examples


This tutorial explains how to get Client IP address from a request in NestJS. One way is using the @ip decorator provided by Nestjs, the Second way using the express request ip property, Third-way using nests real ip decorator third-party npm library.

NestJS how to get the Client IP Address from a Request using IP decorator?

NestJS provides parameters decorator @Ip with HTTP routes. @Ip decorator is equivalent to request.ip in the Express framework

import { Controller, Get, Ip } from '@nestjs/common';

@Controller("api")
export class AppController {
  constructor() { }
  @Get('/ip')
  getIpAddress(@Ip() ip) {
    console.log(ip)
    return ip;
  }

}

Get IP address using express request object in Nestjs

In this example, an express Request contains IP property that returns IP address.

  • Import Request into the controller
import { Request } from 'express';
  • @Get decorator added to the method, that accepts the @Req object of type Request in the express.
  • get Ip address using request.ip property

Here is an example

import { Controller, Get, Req } from '@nestjs/common';
import { Request } from 'express';

@Controller('api')
export class AppController {
    @Get()
    getIpAddress(@Req() request: Request): string {
        const ipAddress=request.ip
        return ipAddress;
    }
}

nestjs-real-ip npm library to Get Remote IP address

nestjs-real-ip is a third-party library that provides nestjs decorator to get IP address as a string, can be used in controller classes

Install npm using the below command in the terminal

npm install nestjs-real-ip

RealIP is a decorator used in the controller, import RealIP into the controller.

import { RealIP } from 'nestjs-real-ip';

Here is an example

import { Controller, Get} from '@nestjs/common';
import { RealIP } from 'nestjs-real-ip';

@Controller('api')
export class AppController {
    @Get("ip")
    getIpAddress(@RealIP() ip: string): string {
        return ip;
    }
}

How do I find the client IP address in Nest JS?

To get Client Ip address in Nestjs, Please follow below steps

  • Nestjs provides @Ip decorator to get IP address
  • pass this @Ip decorator to method of an controller
  • Object of this parameter holds the real ip address
THE BEST NEWSLETTER ANYWHERE
Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
Subscribe
You'll get a notification every time a post gets published here.