arnaucube
arnaucube/socketioMEANseedPublic Self-hosted repository
socketioMEANseed/server/node_modules/forwarded/index.js
server/node_modules/forwarded/index.jsRaw
 1/*!
 2 * forwarded
 3 * Copyright(c) 2014 Douglas Christopher Wilson
 4 * MIT Licensed
 5 */
 6
 7/**
 8 * Module exports.
 9 */
10
11module.exports = forwarded
12
13/**
14 * Get all addresses in the request, using the `X-Forwarded-For` header.
15 *
16 * @param {Object} req
17 * @api public
18 */
19
20function forwarded(req) {
21  if (!req) {
22    throw new TypeError('argument req is required')
23  }
24
25  // simple header parsing
26  var proxyAddrs = (req.headers['x-forwarded-for'] || '')
27    .split(/ *, */)
28    .filter(Boolean)
29    .reverse()
30  var socketAddr = req.connection.remoteAddress
31  var addrs = [socketAddr].concat(proxyAddrs)
32
33  // return all addresses
34  return addrs
35}