如何在 Zend-framework 2 中获取客户端的 IP 地址?在普通 PHP 中它是 $_SERVER['REMOTE_ADDR'] ,但也许是智能 Zend 函数?
有任何想法吗?
如何在 Zend-framework 2 中获取客户端的 IP 地址?在普通 PHP 中它是 $_SERVER['REMOTE_ADDR'] ,但也许是智能 Zend 函数?
有任何想法吗?
您可以使用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();
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');
?>
大秘密:
$_SERVER['REMOTE_ADDR']
不要重新发明已经很容易的东西!