在Node.js中,可以使用中间件来追踪请求来源。这里以Express框架为例,介绍如何使用morgan
和request-ip
这两个库来实现请求来源的追踪。
npm install express
morgan
和request-ip
库:npm install morgan request-ip
const express = require('express');
const morgan = require('morgan');
const requestIp = require('request-ip');
const app = express();
// 配置morgan日志格式
morgan.token('client-ip', function (req) {
return requestIp.getClientIp(req);
});
app.use(morgan(':client-ip - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"'));
// 你的路由和其他代码
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
在这个示例中,我们使用morgan
库来自定义日志格式,并通过request-ip
库获取客户端的IP地址。现在,当你访问你的应用时,日志中将显示请求来源的IP地址。
注意:这个示例仅适用于IPv4地址。如果你需要追踪IPv6地址,可能需要稍微修改代码。此外,这个示例仅提供了一个基本的实现,你可以根据自己的需求进行扩展和优化。