nkint
nkint

Reputation: 11733

nodejs - know from which ip address the server makes the get

Sorry, I'm quite new to network programming and nodejs. I'm using nodes in a server with some clients in a local network.

Sometimes I have to ask data to clients via get request:

// somewhere inside server.js
function askDataToClient(ip) {

    var options = {
        host: String(ip),
        port: 80,
        path: '/client/read',
        auth: 'username:password'
    };

    var request = http.get(options, function(htres){
        var body = "";
        htres.on('data', function(data) {
            body += data;
        });
        htres.on('end', function() {
            body = JSON.parse(body);
            res.json(body);
            res.end();
        })
        htres.on('error', function(e) {
            // ...
        });
    });
}

I'd like to know the server ip used for calling this get request.

I know of this answer but it gives me all the various network active on the server machine:

lo0 127.0.0.1
en1 192.168.3.60
bridge0 192.168.2.1

If I'm querying the client 192.168.3.36 I know it is the second ip, 192.168.3.60 because they are on the same network.. but How to know it programmatically?

Upvotes: 0

Views: 765

Answers (2)

Errol Dsilva
Errol Dsilva

Reputation: 177

Check out request.connection.remoteAddress property available for the HTTP Request object. This indicates the address of the remote host performing the request.

Upvotes: 1

mscdex
mscdex

Reputation: 106746

You should be able to use htres.socket.address().address to get the IP.

Upvotes: 2

Related Questions