Как я могу получить IP-адрес клиента в CakePHP? Это будет $_SERVER['REMOTE_ADDR']
в простом PHP.
Я думал, что это похоже на все $_SERVER
vars, и к ним можно получить доступ с помощью env('VAR_NAME')
или getClientIP()
в CakePHP, но он не возвращает те же результаты.
Есть идеи?
CakePHP 1.x :
RequestHandlerComponent::getClientIp();
Поэтому, чтобы уточнить:
public $components = array( 'RequestHandler' );
Затем в методе контроллера:
$this->RequestHandler->getClientIp();
CakePHP 2.x :
RequestHandler::getClientIp()
устарел; вы можете получить IP-адрес клиента из объекта CakeRequest
:
$this->request->clientIp();
Использование CakePHP 3.x:
//in controller $ip = $this->request->clientIp();
Использование CakePHP 2.x
//in controller $this->request->ClientIp();
Использование CakePHP 1.x
//in controller RequestHandlerComponent::getClientIP();
Если вам нужно получить IP-адрес из модели, $this->request->getClientIp()
не будет работать, бросая:
Ошибка: вызов функции-члена clientIp () для не-объекта
Router::getRequest()->clientIp()
используйте Router::getRequest()->clientIp()
.
Таким образом, в основном, Router::getRequest()
может служить заменой модели $this->request