Blame view

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