Express.js - req.ip 属性
req.ip 包含了请求收到的远程 IP 地址。如果信任代理设置没有设置为 False,则此属性的值取自 x-forwarded-for 标头中的最左项。标头由客户端或代理设置。
语法
req.ip
示例 1
创建一个名为 "reqIp.js" 的文件,并将以下代码片段复制进去。创建完文件后,使用命令 "node reqIp.js" 运行此代码,如下面的示例所示 −
// req.ip Property Demo Example // Importing the express & cookieParser module var cookieParser = require('cookie-parser'); var express = require('express'); // Initializing the express and port number var app = express(); // Initializing the router from express var router = express.Router(); var PORT = 3000; // Defining an Endpoint app.get('/api', function (req, res) { console.log("IP : ", req.ip); res.send(req.ip); }); app.listen(PORT, function(err){ if (err) console.log(err); console.log("Server listening on PORT", PORT); });
输出
使用 GET 请求访问以下端点:localhost:3000/api
C:\home
ode>> node reqIp.js Server listening on PORT 3000 IP : ::ffff:127.0.0.1
示例 2
我们来看另外一个示例。
// req.ip Property Demo Example // Importing the express & cookieParser module var cookieParser = require('cookie-parser'); var express = require('express'); // Initializing the express and port number var app = express(); // Initializing the router from express var router = express.Router(); var PORT = 3000; // Enabling trust proxy app.enable('trust proxy') // Defining an Endpoint app.get('/api', function (req, res) { console.log("IP : ", req.ip); res.send(req.ip); }); app.listen(PORT, function(err){ if (err) console.log(err); console.log("Server listening on PORT", PORT); });
输出
依次访问以下端点 −
GET 请求 – localhost:3000/api
并设置以下标头 −
x-forwarded-header – 103.0.113.165
C:\home
ode>> node reqIp.js Server listening on PORT 3000 IP : 103.0.113.165
广告