Node.js: ricavare l'IP remoto e altri dati utili da una richiesta HTTP

Node.js: ricavare l'IP remoto e altri dati utili da una richiesta HTTP

In Node.js possiamo ricavare molte informazioni utili da ogni richiesta HTTP.

La seguente soluzione ci permette di ottenere l'URL della richiesta, l'IP remoto, il metodo HTTP usato e il browser del client.


'use strict';

const getRemoteInfo = (req) => {
    let realIP = req.get('x-real-ip');
    let ip = '';
    if (realIP) {
        ip = realIP;
    } else {
        ip = req.socket.remoteAddress;
    }
    let data = {
        url: req.originalUrl,
        type: req.method,
        ip: ip,
        browser: req.headers['user-agent']
    };
    return data;
};

module.exports = getRemoteInfo;

Esempio d'uso:


'use strict';

const getRemoteInfo = require('./lib/getRemoteInfo');

app.get('/test', (req, res) => {
    let info = getRemoteInfo(req);
    res.json(info);
});

Torna su