[英]How do I get the client's IP address in Node.js when using the HTTP2 module?
[英]How do i get local ip address of a remote client with node.js using express framework?
我刚遇到一个任务,我需要获取正在访问服务器上REST api的远程客户端的本地ip地址,我没有使用任何负载平衡器(因为目前对此我一无所知),在我的PC上本地运行,我将使用ngrok工具将其暴露于互联网,该工具托管我的应用程序并使之可通过互联网访问。 我将与您分享到目前为止的工作,但这不能满足我的需要,因为它仅获取远程客户端的公共IP地址,这意味着,如果两个不同的用户正在同一网络上访问API,则使用此代码,其IP地址的报告方式相似,
RedisRouter.post('/incrementvisit', async (req: Request, res: Response, next: NextFunction) => {
try {
console.log('req.ip', req.ip);
console.log('request.connection.remoteAddress==================================', req.connection.remoteAddress);
var ip = req.headers['x-forwarded-for'];
console.log('ip from headers -------------->', ip);
console.log('api after trimming', ip);
res.send(await rs.visitCounter(req.body.name,ip));
} catch (error) {
console.log(error);
next(error);
}
});
对于所有从同一网络请求api的用户,这总是给我相同的IP地址,这是他们的公共IP地址,而不是本地的IP地址。 基本上,我需要跟踪对我们的API执行ping操作的不同用户的数量,而且我无法使用相同的IP地址来说明从同一网络向API请求API的两个不同的人。
另外,请为我提供一些有关使用Web代理和Web网络为开发人员的良好初学者水平的阅读建议。 谢谢,保佑。
我不确定哪个服务器ngrok正在运行,但是您是否尝试过:
var ip = req.headers["x-real-ip"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.