2016-03-29 25 views
1

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

$_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']; 
} 
+0

IPv6地址*是*用户的地址。你为什么认为他们有IPv4地址? –

+0

我知道这是用户地址。好吧,我有一个websocket连接,我从同一个用户那里获得IPv4,所以我需要比较这两个值。 – WLFCRK

回答

3

要做到这一点是通过CloudFlare的禁用IPv6支持的唯一方法:

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

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