通过 Cloudflare 在 NODE.JS 上获取客户端 IP

Getting Client Ip on NODE.JS Through Cloudflare

我目前正在使用

数据["ip"] = socket.client.conn.remoteAddress;;

但这只会向我显示 cloudflare 的 IP,我不喜欢泄露我的服务器的 ip,所以我如何通过 cloudflare 获取我的客户端的 ip?

This thread 表示在 socket.io 1+ 中,您应该使用:

socket.request.connection.remoteAddress

或:

socket.handshake.address

但是,如果路径中有 cloudfare 代理服务器(大概有),那么如果 cloudfare 代理服务器将适当的 header 设置为实际客户端,则这只会报告真实的客户端 IP 地址当他们代理启动 socket.io 连接的初始 HTTP 连接时的 IP 地址。

在我研究了几个小时之后,我发现了。
socket.client.request.headers['cf-connecting-ip']