import * as crypto from 'crypto'; import * as express from 'express'; import * as proxyAddr from 'proxy-addr'; import Xev from 'xev'; const ev = new Xev(); export default function(req: express.Request) { const ip = proxyAddr(req, () => true); const md5 = crypto.createHash('md5'); md5.update(ip); const hashedIp = md5.digest('hex').substr(0, 3); ev.emit('request', { ip: hashedIp, method: req.method, hostname: req.hostname, path: req.originalUrl }); }