在 cloudflare 后面获取访问者 ipv4

WLF*_*CRK 2 ipv4 cloudflare

我只是有一个问题,我想获取访问者的 IP 地址。一切都很好,但一位用户只给了我 IPv6。这是我可以给你的代码,而且我刚刚安装了cloudflare apache2 Mod。

 $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"] ? $_SERVER["HTTP_CF_CONNECTING_IP"] : $_SERVER["REMOTE_ADDR"];
 $ip = $_SERVER['REMOTE_ADDR'];

 if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])){
     $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
 }
Run Code Online (Sandbox Code Playgroud)

mjs*_*jsa 5

执行此操作的唯一方法是通过以下方式禁用 CloudFlare 中的 IPv6 支持:

1) 在 DNS 中删除所有 AAAA 记录(仅保留 A 记录)。2) 进入 CloudFlare 仪表板上的网络并关闭“IPv6 兼容性”。

但我不推荐这样做;您可能很快就会发现有人无法连接到您的网站。相反,最好确保您的平台完全支持 IPv6。