Yii2获取正确的客户端IP
我使用此函数获取客户端ip:Yii2获取正确的客户端IP,yii2,ip-address,Yii2,Ip Address,我使用此函数获取客户端ip: $client = @$_SERVER['HTTP_CLIENT_IP']; 你可以在这里看到。 但此地址与使用其他主机的IP(正确的IP)不匹配。例如: 我认为要获得客户端IP地址,您必须使用以下代码: Yii::$app->request->userIP 您可以使用YI2 Yii::$app->getRequest()->getUserIP() 或者,如果您希望将当前用户ip保存到数据库表中,我建议您在模型中使用 publi
$client = @$_SERVER['HTTP_CLIENT_IP'];
你可以在这里看到。
但此地址与使用其他主机的IP(正确的IP)不匹配。例如:
我认为要获得客户端IP地址,您必须使用以下代码:
Yii::$app->request->userIP
您可以使用
YI2
Yii::$app->getRequest()->getUserIP()
或者,如果您希望将当前用户ip保存到数据库表中,我建议您在模型中使用
public function behaviors() {
return [
...
'ip' => [
'class' => IpBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_ip', 'updated_ip'],
ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_ip',
],
]
...
];
}
或者像这样。其中,值可以是字符串或将返回字符串的匿名函数
public function behaviors() {
return [
...
'ip' => [
'class' => IpBehavior::className(),
'createdIpAttribute' => 'created_ip',
'updatedIpAttribute' => 'updated_ip',
'value' => '127.0.0.1',
]
...
];
}
获取客户端ip的首选方法是使用
Yii::$app->request remoteIp
此方法使用
$\u服务器['REMOTE\u ADDR']
或ip头(如X-Forwarded-For),这些头可以由load balencers或代理服务添加
但是,在某些情况下,您的公共ip()和应用程序显示的ip()会有所不同,例如,如果您与应用程序位于同一网络上,但此ip不正确($\u SERVER['REMOTE\u ADDR'])。如何获得显示在线资源的相同ip?是否标记对您有效的正确答案