Объясните php скрипт?
тому кто это написал, стоит прострелить колено..
вот код с комментариями о происходящем$inputArr = file('input', FILE_SKIP_EMPTY_LINES); // читаем из файла все данные
$outputArr = []; // пустой выходной массив

foreach ($inputArr as $line) { // читаем построчно входные данные
	list($ip, $mask) = explode('/', trim($line)); // разбиваем строку на $ip и $mask, по разделителю '/'
	$ipAsLongInt = ip2long($ip); // Преобразуем ip адрес в десятичное число
	$ipAsBinary = decbin($ipAsLongInt); // Преобразуем число в бинарное число
	$ipAsBinaryWithCorrectLength = str_pad($ipAsBinary, 32, 0, STR_PAD_LEFT); // дополняем слева нулями до длинны 32 символа
	$outputLine = substr($ipAsBinaryWithCorrectLength, 0, $mask); // Копируем из строки только первые $mask символов
	$outputArr[] = $outputLine;
}

$outputRaw = join(PHP_EOL, $outputArr); // Соединяем все строки из массива символом перевода строки
file_put_contents('output', $outputRaw); // Записываем данные в выходной файл
И ответ: да, этот код делает то, что надо
Да, по идее сможет.
если его разобрать на отдельные функции, получится как-то так:$input_lines = file('input.txt', FILE_SKIP_EMPTY_LINES);
    $output_lines = [];
    foreach ($input_lines as $line) {
        $line = trim($line);
        list($ip, $mask) = explode('/', $line);
        $ip_as_long = ip2long($ip);
        $ip_as_bin = decbin($ip_as_long);
        $padded_bin = str_pad($ip_as_long, 32, 0, STR_PAD_LEFT);
        $output_lines[] = substr($padded_bin, 0, $mask);
    }
    $out = join(PHP_EOL, $output_lines);
    file_put_contents('output.txt', $out);
Если какие-то функции незнакомы - смотрите в документацию, там вверху поиск есть.