哪里好些 在bootstrap.php或app_controller.php
中地理定位需要它。
答案 0 :(得分:19)
在1.x中使用
RequestHandlerComponent::getClientIP()
它已经涵盖了您可能面临的所有问题
是的,“在您需要它的时间点”
对于2.x,最好使用
$this->request->getClientIp()
在http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html#requesthandlercomponent
上记录的控制器内部
答案 1 :(得分:1)
这实际上取决于您使用IP的目的。如果您需要在代码的所有部分中使用它,那么app_controller就是放置它的地方。例如,如果您只需要登录,则将其放在users_controller中。
话虽如此,编写会话变量可能会更好,然后在没有代码开销的情况下随时可用。
答案 2 :(得分:1)
echo $_SERVER['REMOTE_ADDR'];
或
$remIP = $_SERVER['REMOTE_ADDR'];
在您需要它的时间点。这样你可以确定它是最新的,虽然我不确定它是否会变得陈旧。它一直存在于服务器中,因此没有何时分配它的概念 - 只需在需要时获取它。