Информер курса валют ЦБ РФ   •   Магазин расширений
666 просм
3 комм
Поделиться:

Как получить реальный 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-адрес посетителя вашего сайта.

«Pandoge» - помощник веб-мастера
3
комментария
20.03 в 17:49

Напишите пожалуйста подробнее как и куда применить этот код, куда вставить и на что заменить?

  • 1
21.03 в 15:57

Нашел, может кому пригодится. Если у вас DLE на шаред хостинге и соответственно нет доступа к настройкам сервера, можно изменить настройку в php файлах.

functions.inc.php и functions.php

найти

REMOTE_ADDR

заменить на

HTTP_CF_CONNECTING_IP

, теперь работающий сайт через клодфлейр, будет показывать реальные ip пользователей.

  • 1

РОман, спасибо за информацию.

  • 0
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх