22 lines
471 B
TypeScript
22 lines
471 B
TypeScript
|
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
|
||
|
});
|
||
|
}
|