Реальный IP-адрес посетителя сайта, подключенного к Cloudflare на PHP?
Cloudflare – хорошее решение облачной защиты вашего сайта и кэширование информации на нем. Но вот незадача: при попытке получить реальный IP-адрес посетителя на PHP по такому принципу:
$user_ip = $_SERVER["REMOTE_ADDR"]; echo $user_ip;
вы получите не его IP-адрес, а IP-адрес самого Cloudflare. Несмотря на это, есть способ, с помощью которого можно получить реальный IP-адрес посетителя.
Все дело в том, что Cloudflare при посещении вашего сайта дополнительно посылает несколько заголовков, один из которых – HTTP_CF_CONNECTING_IP, который и содержит в себе реальный IP-адрес посетителя. Мы можем проверить существование этого заголовка, и если он существует – отдавать нам его содержимое, а в противном случае – возвращать данные суперглобального массива $_SERVER.
На практике все это выглядит следующим образом:
if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $user_ip = $_SERVER["HTTP_CF_CONNECTING_IP"]; } else { $user_ip = $_SERVER["REMOTE_ADDR"]; } echo $user_ip;
Так, независимо от того, подключен ваш сайт к Cloudflare или нет – вы получите реальный IP-адрес посетителя вашего сайта.
Leave an answer
You must login or register to add a new answer.