@NubasLol

Как подружить laravel c cloudflare?

Хочу что бы при вызове request()->ip() отдавался реальный айпи пользователя, а не ip cloudflare

cf шлет реальный айпи в заголовках

cf-connecting-ip
x-forwarded-for

Но вот как их красиво использовать, я не понимаю. Включен миделваре TrustProxies, с таким конфигом
protected $proxies = '*';

В целом оно нормально работает, если вызвать
request()->getClientIps()
Там будут ip из x-forwarded-for, но проблема в том, что клиентский айпи стоит последним в списке, а метод request()->ip() берет первый элемент массива. Пока решил таким образом, что в index.php добавил
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
    $_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
}

Но мне это дико не нравится
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы