通过 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']
我目前正在使用
数据["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']