Проверка Laravel с разделением «-» для IP - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу поместить диапазон IP в поле формы. Как 192.168.1.3-192.168.1.254

Как я могу проверить это

Вот мой код

HTML

<div class="form-group row">
    <label class="col-2 col-form-label">Pool IP Range</label>

    <input type="text" class="form-control" name="range_ip" value="" placeholder="Enter Pool IP (192.168.1.2-192.168.1.254)">

</div>

Контроллер:

public function store(Request $request)
    {
    $validate = [
        'pool_name' => 'required|unique:pools|max:10',
        'server_id' => 'required'
    ];

    $ips = explode('-', $request['range_ip']);
    foreach ($ips as $ip) {
        $validate['range_ip'] = $ip;
    }


    $this->validate($request, $validate);
}

1 Ответ

0 голосов
/ 01 сентября 2018

код ниже, также убедитесь, что first ip <<code>second ip

public function store(Request $request)
{
    $this->validate($request, [
        'pool_name' => 'required|unique:pools|max:10',
        'server_id' => 'required',
        'range_ip' => [
            'required',
            function($attribute, $value, $fail) {
                $validIp = array_filter(explode('-', $value), function($ip) {
                                return filter_var($ip, FILTER_VALIDATE_IP);
                        });

                if ( (count($validIp) !== 2) || (ip2long($validIp[0]) >= ip2long($validIp[1])) )
                {
                    return $fail($attribute.' is invalid.');
                }
            },
        ],
    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...