Быстрый и надёжный хостинг на SSD-дисках от 165р в месяц   •   Реклама
1 657 просм
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-адрес посетителя вашего сайта.

3
комментария
Форма комментирования этой статьи скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    839
      •  Администратор
    21 мар в 19:03

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

    • 2
    6
      •  Проверенный
    21 мар в 15:57

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

    functions.inc.php и functions.php

    найти

    REMOTE_ADDR

    заменить на

    HTTP_CF_CONNECTING_IP

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

    • 1
    6
      •  Проверенный
    20 мар в 17:49

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

Подняться наверх
«Pandoge» - помощник вебмастера