在Yii中获取用户IP地址的函数

4dbbbstv  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(401)

我试图创建一个快捷方式来获取用户的IP地址,我创建了这个函数在下面的protected/helpers/shortcut.php

echo getIP();
function getIP()
{
    return CHttpRequest::getUserHostAddress();
}

我得到这个错误,因为我设置我的php.ini为strict.和getUserHostAddress()不是一个静态函数

Strict Standards: Non-static method CHttpRequest::getUserHostAddress() should not be called statically in /Applications/XAMPP/xamppfiles/htdocs/dev/protected/helpers/shortcuts.php on line 97
::1

我试过了

Yii::app()->request->userHostAddress;

但我得到这个错误

Notice: Trying to get property of non-object in /Applications/XAMPP/xamppfiles/htdocs/dev/protected/helpers/shortcuts.php on line 97

知道我做错了什么吗?谢谢

dnph8jn4

dnph8jn41#

在Yii2中,使用Yii::$app->getRequest()->getUserIP()

uxhixvfz

uxhixvfz2#

请尝试以下操作:

Yii::app()->request->getUserHostAddress()

取而代之

Yii::app()->request->getUserHostAddress

使用“()”时,它应该有效

pdkcd3nj

pdkcd3nj3#

这与Yii 2有关(但在Yii 1.1中也可以使用).如果您需要“X-Forwarded-For”IP而不是代理,如果您的服务器在一个保留代理之后,请在config/main.php中修改'request'配置如下:

'request' => [
    'csrfParam' => '_csrf-frontend',
    'trustedHosts' => [
        '192.168.1.10', // The IP of the reverse proxy server
    ],
    'secureHeaders' => [ // The headers coming from reserve proxy
        'X-Forwarded-For',
        'X-Forwarded-Proto',
        'Front-End-Https',
    ],
],

相关问题