javascript - 获取请求的客户端 IP 地址而不是 Cloudflare 的 IP 地址

标签 javascript node.js nginx cloudflare

Cloudflare 更改传入请求的 IP 地址,因为 Cloudflare 是我的网站和 Internet 之间的中间件,一个代理。

我应该如何获取请求的初始 IP 地址,而不是 Cloudflare 的 IP 地址。我听说过 mod_cloudflare,但这个插件是否只更新我日志中的 IP 地址(?)而且我没有找到适用于 Nginx 的版本。

最佳答案

Cloudflare 设置 CF-Connecting-IP and the X-Forwarded-For headers在每个请求上

您可以简单地从他们的特殊 header 中获取 IP:

let ip = req.headers['cf-connecting-ip']

如果您希望请求来自 Cloudflare 之外,您可以通过以下方式获取这些 IP:

let otherIp = req.headers['x-forwarded-for'] || req.connection.remoteAddress

不过,请注意,其他代理(如 Nginx)也会设置 x-forwarded-for header 。

关于javascript - 获取请求的客户端 IP 地址而不是 Cloudflare 的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026610/

相关文章:

javascript - window.onunload 事件

javascript - 声音未播放

javascript - 点击不会触发jquery函数

.net - Node.js 连接到 signalR 2

Django 应用程序在 runserver 下运行,但在 nginx 下运行 404s

javascript - HTML 和 JavaScript |iOS| - 删除/排除表情符号

node.js - 错误: Cannot find module 'togeojson'

javascript - 循环更改视频分辨率

python - Nginx:将 WordPress URL 映射到新的静态网站

php - 如何配置 Nginx 以将特定请求模式路由到托管 Symfony 应用程序的特定 php-fpm 上游?