get-client-ip
Version:
Get your client IP address more easily
74 lines (58 loc) • 1.57 kB
Markdown
Get your client IP address more easily
npm:
```bash
npm install get-client-ip
```
```javascript
// CommonJs
const getClientIp = require("get-client-ip");
// ES6
import getClientIp from "get-client-ip";
```
```javascript
app.get("/", (req, res) => {
const ip = getClientIp(req);
res.send(ip);
});
```
```javascript
//Standard headers used by Amazon EC2, Heroku, and many others.
req.headers["x-client-ip"];
//Load balancers (AWS ELB) or proxies (may return multiple IP addresses in the format: "client IP, proxy 1 IP, proxy 2 IP" so we need to pay attention).
req.headers["x-forwarded-for"];
//
req.headers["forwarded-for"];
//
req.headers["x-forwarded"];
//
req.headers.forwarded;
// Nginx proxy/FastCGI, alternative to X-Forwarded-For, used by some proxies.
req.headers["x-real-ip"];
// Cloudflare, applied to every request to the origin.
req.headers["cf-connecting-ip"];
// Fastly and Firebase hosting header (When forwarded to cloud function).
req.headers["fastly-client-ip"];
// Akamai and Cloudflare: True-Client-IP.
req.headers["true-client-ip"];
//
req.headers["x-cluster-client-ip"];
// Google App Engine app identity.
req.headers["x-appengine-user-ip"];
// Cloudflare fallback header.
req.headers["Cf-Pseudo-IPv4"];
//
req.connection.remoteAddress;
//
req.connection.socket.remoteAddress;
//
req.socket.remoteAddress;
```
We want to thank [Petar Bojinov](https://github.com/pbojinov) for the inspiration.