Получить IP-адрес пользователя в zend framework
Как я могу получить IP-адрес клиента в Zend-framework 2? Это будет $_SERVER ['REMOTE_ADDR'] в простом PHP, но, возможно, это умная функция Zend?
Любые идеи?
Ответы
Ответ 1
Объект запроса в ZF2 имеет метод с именем getServer
. Этот метод возвращает объект, реализующий \Zend\Stdlib\ParametersInterface
. С помощью этого конкретного объекта вы можете получить что-либо из переменной $_SERVER.
Вот два примера использования метода и объекта:
<?php
// Getting the entire params object
$servParam = $request->getServer();
$remoteAddr = $servParam->get('REMOTE_ADDR');
// Getting specific variable
$remoteAddr = $request->getServer('REMOTE_ADDR');
?>
Ответ 2
Вы можете использовать класс Zend\Http\PhpEnvironment\RemoteAddress
для получения IP-адреса клиента.
$remote = new Zend\Http\PhpEnvironment\RemoteAddress;
echo $remote->getIpAddress();
См. http://framework.zend.com/apidoc/2.1/classes/Zend.Http.PhpEnvironment.RemoteAddress.html.
Примечание:
Чтобы включить проверку заголовка HTTP_X_FORWARDED_FOR
, включите setUseProxy()
:
$remote->setUseProxy()->getIpAddress();
Ответ 3
Большой секрет:
$_SERVER['REMOTE_ADDR']
Не изобретайте уже легкие вещи!