РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
180 of 1361 menu

Метод getClientIp

Метод getClientIp класса Request возвращает IP-адрес клиента, который обратился к приложению. Метод не принимает параметров. При наличии доверенных прокси метод возвращает реальный IP клиента из заголовков X-Forwarded-For или X-Real-IP, а не IP прокси-сервера.

Синтаксис

public function getClientIp(): ?string

Пример

Давайте получим IP-адрес клиента в контроллере и вернём его в ответе:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $ip = $request->getClientIp(); return new Response($ip); } } ?>

Результат выполнения кода:

"127.0.0.1"

Пример

Давайте сохраним IP-адрес клиента в переменную и используем его в условии:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/user', name: 'article_user')] public function user(Request $request): Response { $ip = $request->getClientIp(); if ($ip === '127.0.0.1') { $res = 'local user'; } else { $res = 'remote user'; } return new Response($res); } } ?>

Результат выполнения кода для локального клиента:

"local user"

Пример

Давайте выведем IP-адрес клиента вместе с остальными данными запроса:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/info', name: 'article_info')] public function info(Request $request): Response { $res = [ 'ip' => $request->getClientIp(), 'method' => $request->getMethod(), 'uri' => $request->getRequestUri(), ]; return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"ip":"127.0.0.1","method":"GET","uri":"/info"}

Смотрите также

  • класс Request,
    который представляет HTTP-запрос
  • метод getMethod,
    который возвращает HTTP-метод запроса
  • метод getRequestUri,
    который возвращает URI запроса
  • метод getHost,
    который возвращает хост запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить