Я полностью понимаю, что я тестирую его на своем локальном хосте, но мне интересно, должен ли он возвращать реальный IP-адрес моего ноутбука или, как на самом деле, петлю ' :: 1 ' в каждом из следующих случаев... Будет ли это работать по-другому в производстве или я пропущу точку?
От контроллера
<?php
namespace SD\UserBundle\Controller;
use FOS\UserBundle\Controller\SecurityController as OriginalController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
class SecurityController extends OriginalController
{
public function loginAction(Request $request)
{
$clientIp = $this->get('request_stack')
->getMasterRequest()
->getClientIp()
;
if($this->get('sd_user.ip_foresight')->isBlackListed($clientIp))
{
return new RedirectResponse(
$this->generateUrl('sd_user_forbidden')
);
}
return parent::loginAction($request);
}
}
От слушателя
<?php
namespace SD\UserBundle\EventListener;
use Symfony\Component\HttpFoundation\RequestStack;
class IpListener implements EventSubscriberInterface
{
protected $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public function clientIp()
{
return $this->requestStack->getMasterRequest()->getClientIp();
}
// ...