Я заметил, что исходный код был хорош для двух десятичных знаков, но только в случае, если вам нужно использовать 3, ниже должно работать нормально.
$input = "195.2.2.13/100";
function ipRange( $input ) {
$input = explode( "/", $input );
$numerator = substr( strrchr( $input[0], "." ), 1, 3 );
$denominator = $input[1];
$num = strlen( $numerator );
$range = substr( $input[0], 0, -$num );
while ( $numerator <= $denominator ) {
echo $range.$numerator."<br />\n\r";
$numerator++;
}
}
// Call function
ipRange($input);