$max_bits ) { continue; } if ( 0 === $bits ) { return true; } $full_bytes = intdiv( $bits, 8 ); $rem_bits = $bits % 8; if ( $full_bytes > 0 && substr( $ip_bin, 0, $full_bytes ) !== substr( $sub_bin, 0, $full_bytes ) ) { continue; } if ( $rem_bits > 0 ) { $mask = ( 0xFF << ( 8 - $rem_bits ) ) & 0xFF; if ( ( ord( $ip_bin[ $full_bytes ] ) & $mask ) !== ( ord( $sub_bin[ $full_bytes ] ) & $mask ) ) { continue; } } return true; } return false; } }