如果我的服务器使用 Cloudflare,我如何获取使用代理的访问者的真实 IP?
到目前为止,如果访问者在不使用代理的情况下打开我的服务器(使用 cloudflare),则此方法有效
isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? $_SERVER["HTTP_CF_CONNECTING_IP"] : $_SERVER["REMOTE_ADDR"];
如果我的服务器使用 Cloudflare,我如何获取使用代理的访问者的真实 IP?
到目前为止,如果访问者在不使用代理的情况下打开我的服务器(使用 cloudflare),则此方法有效
isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? $_SERVER["HTTP_CF_CONNECTING_IP"] : $_SERVER["REMOTE_ADDR"];
你检查过 HTTP_X_FORWARDED_FOR 吗?
您可以在这里看到它的实际效果:http: //canhazip.com/more.php ,它正在通过 CloudFlare。如果您也想使用代理进行测试,您可以使用该页面。
ps 免责声明:我在 CloudFlare 工作。
或者您可以为 Apache 安装 mod_cloudflare。
https://www.cloudflare.com/resources-downloads#mod_cloudflare https://github.com/cloudflare/mod_cloudflare