Получить 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']

Не изобретайте уже легкие вещи!