在cloudflare后面访问ipv4

时间:2016-03-29 20:00:12

标签: cloudflare ipv4

我只是遇到了我想要获取访问者IP地址的问题。 Everythings很好,但一个用户只给我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'];
 }

2 个答案:

答案 0 :(得分:3)

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

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

我不会推荐这个;您很快就会发现自己无法连接到您的网站。相反,最好确保您的平台完全支持IPv6。

答案 1 :(得分:0)

请注意,CF使得禁用ipv6稍微困难一些(它不可能来自gui,必须由api完成)但是它们现在包含一个选项,用于向标题添加“伪IPv4”地址 - 通过覆盖Cf-Connecting-IPX-Forwarded-For或添加Cf-Pseudo-IPv4标题。

这对于尚未支持ipv6的遗留应用程序来说非常方便 - https://support.cloudflare.com/hc/en-us/articles/202494830-Pseudo-IPv4-Supporting-IPv6-addresses-in-legacy-IPv4-applications