#request-ip
A tiny Node.js module for retrieving a request's IP address.
npm install request-ip
var requestIp = require('request-ip');
// inside middleware handler
var ipMiddleware = function(req, res, next) {
var clientIp = requestIp.getClientIp(req); // on localhost > 127.0.0.1
next();
};
It looks for specific headers in the request and falls back to some defaults if they do not exist.
The following is the order we use to determine the user ip from the request.
X-Client-IP
X-Forwarded-For
header may return multiple IP addresses in the format: "client IP, proxy 1 IP, proxy 2 IP", so we take the the first one.X-Real-IP
(nginx proxy/FastCGI)X-Cluster-Client-IP
(Rackspace LB, Riverbed Stingray)- Permuations of #2 such as:
X-Forwarded
,Forwarded-For
andForwarded
req.connection.remoteAddress
req.socket.remoteAddress
req.connection.socket.remoteAddress
- Getting a user's IP for geolocation.
None
Make sure you have the necessary dependencies:
npm install
Run the integration tests
npm test
1.1.2
- add support for Travis CI (continuous deployment) and Coveralls (code coverage)
1.1.0
- add support for X-Cluster-Client-IP, X-Forwarded, Forwarded-For, Forwarded
- add tests
1.0.0
- add semver
0.0.4
- add support for X-Real-Ip
- bug fixes
0.0.3
- improve docs
0.0.2
- bug fix
0.0.1
- initial release
The MIT License (MIT)