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);
});