6
0
Fork 0

获取真实IP

release
李静 2022-01-27 14:11:55 +08:00
parent 2ff139ca1e
commit e6a582dbcc
2 changed files with 11 additions and 2 deletions

View File

@ -9,9 +9,9 @@ use EasyWeChat\Payment\Application as EasyWeChatPaymentApplication;
use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Database\Eloquent\Relations\Relation;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Overtrue\EasySms\EasySms; use Overtrue\EasySms\EasySms;
use Symfony\Component\HttpFoundation\HeaderUtils;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
@ -96,6 +96,16 @@ class AppServiceProvider extends ServiceProvider
protected function registerRequestRealIp() protected function registerRequestRealIp()
{ {
Request::macro('realIp', function () { Request::macro('realIp', function () {
if ($forwarded = $this->header('X-Forwarded-For')) {
$segments = HeaderUtils::split($forwarded, ',');
foreach ($segments as $segment) {
if (filter_var($segment, \FILTER_VALIDATE_IP)) {
return $segment;
}
}
}
return $this->ip(); return $this->ip();
}); });
} }

View File

@ -57,7 +57,6 @@ class RouteServiceProvider extends ServiceProvider
return response()->json([ return response()->json([
'errcode' => 404, 'errcode' => 404,
'message' => 'Not Found', 'message' => 'Not Found',
'X-Forwarded-For' => request()->header('X-Forwarded-For'),
], 404); ], 404);
}); });
}); });