我使用此功能获取客户端IP:
$client = @$_SERVER['HTTP_CLIENT_IP'];
您可以在这里看到它。 http://city.ru.xsph.ru/web/
但是该地址与使用其他主机的IP(正确的IP)不匹配。例如: https://hidemyna.me/en/ip/
答案 0 :(得分:2)
您可以使用YI2
Yii::$app->getRequest()->getUserIP()
或者如果您希望将当前用户ip保存到数据库表中,我建议您在
之类的模型中使用IPbehavior
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',
]
...
];
}
答案 1 :(得分:0)
我认为要获取客户端IP地址,您必须使用以下代码:
Yii::$app->request->userIP
答案 2 :(得分:0)
获取客户端IP的首选方法是使用Yii::$app->request-remoteIp
此方法使用$_SERVER['REMOTE_ADDR']
或ip标头(例如 X-Forwarded-For ),这些标头可以由负载平衡器或代理服务添加。
在某些情况下,您的公共IP(https://hidemyna.me/en/ip/)和您的应用所显示的IP(http://city.ru.xsph.ru/web/)可能会有所不同-如果您与应用位于同一网络,例子