Forwarded HTTP

Resolves RFC 7239 (Forwarded HTTP Extension), with fallback to all legacy & special Forward headers: X-Forwarded-*
, X-Real-*
, Fastly-Client-IP
, X-Cluster-Client-IP
, and others.
Focuses on resolving to the RFC standard and providing a consistent access to HTTP Forwarded Parameters: by
, for
, host
, proto
.

Install
npm install --save forwarded-http
API
forwarded(http.IncomingMessage[, options])
var forwarded = require('forwarded-http')
var params = forwarded(req)
var filteredParams = forwarded(req, {
filter: ['1.0.?.*', '2001:db8:*']
})
.port
The final proxied port before hitting this server
var params = forwarded(req)
params.port
.for
Oject with IPs as key with matching port used as value (if applicable)
var params = forwarded(req)
params.for
.proto
The final proxied protocol before hitting this server
var params = forwarded(req)
params.proto
.host
The proxied host
var params = forwarded(req)
arams.host
.ports
Array of ports the client is connected through
var params = forwarded(req)
params.ports
.ips
Array of IP addresses the client is connected through
var params = forwarded(req)
params.ips
Support
Donations are welcome to help support the continuous development of this project.

License
MIT © Ahmad Nassri