Julio Seña
Julio Seña

Reputation: 261

how get ip client using express 4.x

I want to get the client's IP and I 'm trying with localhost (127.0.0.1 ) but I always get :: 1

i 'm trying using

app.enable('trust proxy');
app.set('trust proxy', 'loopback');

app.get('/',function(req,res){
 res.send(req.ip); //I always get :: 1
 // or
 var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
    res.send(ip);//I always get :: 1
});

how can get 127.0.0.1 and not :: 1 . this can be done?

Upvotes: 10

Views: 10190

Answers (2)

Trott
Trott

Reputation: 70055

::1 is the IPv6 equivalent of localhost. If you want to only have your server listen over IPv4 and thus only have IPv4 addresses come in from your clients, you can specify an IPv4 address in app.listen():

app.listen(3000, '127.0.0.1');

Upvotes: 20

Garistar
Garistar

Reputation: 381

Getting the clients IP address is pretty straightforward in NodeJS:

 var ip = req.headers['x-forwarded-for'] || 
     req.connection.remoteAddress || 
     req.socket.remoteAddress ||
     req.connection.socket.remoteAddress;
 console.log(ip);

Upvotes: 3

Related Questions