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