如何使用 Laravel 获取服务器 IP?
laravelphpserver side programming更新于 2025/4/30 3:37:17
服务器 IP 是您所连接的服务器的 IP 地址。使用 Laravel 获取服务器 IP 时,可以使用 $_SERVER['SERVER_ADDR']。
$_SERVER 变量 在 PHP 中充当全局变量。它包含诸如标头信息、脚本位置和其他杂项等详细信息。
示例 1
以下示例检索 $_SERVER 全局变量的详细信息。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class StudentController extends Controller { public function index() { print_r($_SERVER); } }
输出
On executing this will generate the following output −
Array ( [DOCUMENT_ROOT] => C:\xampp\htdocs\laraveltest\public [REMOTE_ADDR] => 127.0.0.1 [REMOTE_PORT] => 61705 [SERVER_SOFTWARE] => PHP 7.3.33 Development Server [SERVER_PROTOCOL] => HTTP/1.1 [SERVER_ADDR] => 127.0.0.1 [SERVER_NAME] => 127.0.0.1 [SERVER_PORT] => 8000 [REQUEST_URI] => /test [REQUEST_METHOD] => GET [SCRIPT_NAME] => /index.php [SCRIPT_FILENAME] => C:\xampp\htdocs\laraveltest\public\index.php [PATH_INFO] => /test [PHP_SELF] => /index.php/test [HTTP_HOST] => 127.0.0.1:8000 [HTTP_CONNECTION] => keep-alive [HTTP_CACHE_CONTROL] => max-age=0 [HTTP_SEC_CH_UA] => " Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102" [HTTP_SEC_CH_UA_MOBILE] => ?0 [HTTP_SEC_CH_UA_PLATFORM] => "Windows" [HTTP_UPGRADE_INSECURE_REQUESTS] => 1 [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 [HTTP_SEC_FETCH_SITE] => none [HTTP_SEC_FETCH_MODE] => navigate [HTTP_SEC_FETCH_USER] => ?1 [HTTP_SEC_FETCH_DEST] => document [HTTP_ACCEPT_ENCODING] => gzip, deflate, br [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.9 [HTTP_COOKIE] => XSRF-TOKEN=eyJpdiI6IlJCKzMwdE9FeGhnck1ycllPOHh2RGc9PSIsInZhbHVlIjoiUUw0cWdGeHlXeStSY3pQcWFGTmI5YnpaaDdpanFYSW1lUkNzNUxNTDdnUk5BT0ZjdHVqK1YxM256aUN4Z0hJTGdObytoYUlKTjVpZ0ttU3pEbGlxdXd0Z3JsMDA2bGF3YnBRTUoxb0FUVklRekVmMHNVRmk4TUFwbG4vMzlNMU4iLCJtYWMiOiI5MmZmYTkxYzhiOWFmNTdkNTJiZjQyZmFhYWQyZTgyMTM2M2NmNGFkNzdkNjA0NTY3M2QwYTk2OTI1NzE4OTlkIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6IlZGcmxOZ0xUcnF1bUh2K2pqV1hraWc9PSIsInZhbHVlIjoiSCtqbFErN0lxUksyNzBFZkxZa3p1Q3RHRzZVVDcrd1JZRDJsaEh6eW5RNWFJUS85NzFtb21ray95bXZuZDY4dU52TWxUUVJacURCTy9ERjV2VTBiS2FFdFFsQ2MrclFkejBPaG5lNDlyNGV5M253R2o2UGZJRmxmRjgrVmV5NFIiLCJtYWMiOiJlMGU3ZWY5YTUxZjY3ZjEzNzc0MzViMTUwYTgxYmJmNjY4N2I2NmM3NjJjNzkwMGEyZDhlNmYxY2EwMDkxYjE4IiwidGFnIjoiIn0%3D [REQUEST_TIME_FLOAT] => 1653728150.9227 [REQUEST_TIME] => 1653728150 )
来自 $_SERVER 全局变量的输出有 SERVER_NAME、SERVER_ADDR、SERVER_PORT 等。
示例 2
以下是使用 $_SERVER['SERVER_ADDR'] 获取服务器 IP 的示例 –
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { echo $_SERVER['SERVER_ADDR']; } }
输出
127.0.0.1
使用 SERVER_ADDR
除了使用全局变量 $_SERVER 之外,Laravel 还提供了一个 request() 对象,该对象可以使用 SERVER_ADDR 作为键返回服务器 IP。您还可以使用 request() 中的 ip() 方法,如下例所示。
示例 1
以下示例将值 SERVER_ADDR 传递给 request()->server() 方法。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function index() { echo request()->server('SERVER_ADDR'); } }
输出
127.0.0.1
示例 2
以下示例尝试使用 request()->ip() 方法检索 IP 地址。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Student; //use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\DB; use Illuminate\Support\Collection; class StudentController extends Controller { public function index() { echo request()->ip(); } }
输出
上述代码的输出是 -
127.0.0.1

