初始化提交
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utils;
|
||||
|
||||
use Hyperf\HttpServer\Contract\RequestInterface;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
|
||||
|
||||
class Http
|
||||
{
|
||||
#[Inject]
|
||||
protected RequestInterface $request;
|
||||
|
||||
/**
|
||||
* 获取客户端ip地址
|
||||
* @return string
|
||||
*/
|
||||
public function getIp():string
|
||||
{
|
||||
$res = $this->request->getServerParams();
|
||||
if (isset($res['http_client_ip'])) {
|
||||
return $res['http_client_ip'];
|
||||
} elseif (isset($res['http_x_real_ip'])) {
|
||||
return $res['http_x_real_ip'];
|
||||
} elseif (isset($res['http_x_forwarded_for'])) {
|
||||
//部分CDN会获取多层代理IP,所以转成数组取第一个值
|
||||
$arr = explode(',', $res['http_x_forwarded_for']);
|
||||
return $arr[0];
|
||||
} else {
|
||||
return $res['remote_addr'];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user