Laravel 5 控制器中的 IP 地址验证

Riz*_*jha 5 validation ip-address laravel-5

在将 IP 地址提交到我的数据库之前,我试图找到一种验证 IP 地址的方法,我尝试了很多 Google 搜索,但无法在我的 Laravel 控制器中执行此操作。你能帮忙吗?赞赏

Rah*_*rve 9

在控制器内部使用。导入验证器类的命名空间并尝试验证 IP(IP4/IP6)地址。Laravel 5Laravel 5.X

public function update(Request $request) 
{
   $validator = Validator::make($request->all(), [
        'ip_address' => 'required|ip'
    ]);
}

if ($validator->fails()) {
    return "Invalid IP address!"
}
Run Code Online (Sandbox Code Playgroud)

如果要分别验证 IP4 和 IP6,请使用以下代码。

'ip_address' => 'required|ipv4'

'ip_address' => 'required|ipv6'
Run Code Online (Sandbox Code Playgroud)

快乐编码!!!


Phi*_*oss 3

您可以在控制器本身内部执行此操作:

public function update(Request $request)
{
    // Get the current users IP address and add it to the request
    $request->merge(['ip_address' => $_SERVER['REMOTE_ADDR']]);

    // Validate the IP address contained inside the request
    $this->validate($request, [
        'ip_address' => 'required|ip'
    ]);
}
Run Code Online (Sandbox Code Playgroud)

$request->merge()方法将允许您将项目添加到表单请求中,然后您可以仅在 IP 上发出简单的验证请求。

或者,您可以将所有这些移动到它自己的 Request 类并将其注入到方法中。