!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/billing/sysinfo/lib/   drwxr-xr-x
Free 13.26 GB of 57.97 GB (22.87%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     functions.misc.php (6.01 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * This file is part of Linfo (c) 2010 Joseph Gillotti.
 * 
 * Linfo is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Linfo is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Linfo.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
 * Keep out hackers...
 */
defined('IN_INFO') or exit;

// Certain files, specifcally the pci/usb ids files, vary in location from
// linux distro to linux distro. This function, when passed an array of
// possible file location, picks the first it finds and returns it. When
// none are found, it returns false
function locate_actual_path($paths) {
    
    
// Make absolutely sure that's an array
    
$paths = (array) $paths;

    
$num_paths count($paths);
    for (
$i 0$i $num_paths$i++)
        if (
is_file($paths[$i]))
            return 
$paths[$i];

    return 
false;
}

// Append a string to the end of each element in a 2d array
function array_append_string($array$string ''$format '%1s%2s') {

    
// Get to it
    
foreach ($array as $k => $v)
        
$array[$k] = is_string($v) ? sprintf($format$v$string) : $v;
    
    
// Give
    
return $array;
}

// Get a file who's contents should just be an int. Returns zero on failure.
function get_int_from_file($file) {
    if (!
file_exists($file))
        return 
0;

    if (!(
$contents = @file_get_contents($file)))
        return 
0;

    
$int trim($contents);

    return 
$int;
}

// Convert bytes to stuff like KB MB GB TB etc
function byte_convert($size$precision 2) {
    
    
// Grab these
    
global $settings;

    
// Sanity check
    
if (!is_numeric($size))
        return 
'?';
    
    
// Get the notation
    
$notation $settings['byte_notation'] == 1000 10001024;

    
// Fixes large disk size overflow issue
    // Found at http://www.php.net/manual/en/function.disk-free-space.php#81207
    
$types = array('B''KB''MB''GB''TB');
    
$types_i = array('B''KiB''MiB''GiB''TiB');
    for(
$i 0$size >= $notation && $i < (count($types) -); $size /= $notation$i++);
    return(
round($size$precision) . ' ' . ($notation == 1000 $types[$i] : $types_i[$i]));
}

// Like above, but for seconds
function seconds_convert($uptime) {

    global 
$lang;
    
    
// Method here heavily based on freebsd's uptime source
    
$uptime += $uptime 60 30 0;
    
$years floor($uptime 31556926);
    
$uptime %= 31556926;
    
$days floor($uptime 86400);
    
$uptime %= 86400;
    
$hours floor($uptime 3600);
    
$uptime %= 3600;
    
$minutes floor($uptime 60);
    
$seconds floor($uptime 60);

    
// Send out formatted string
    
$return = array();

    if (
$years 0)
        
$return[] = $years.' '.($years $lang['years'] : substr($lang['years'], 0strlen($lang['years']) - 1));

    if (
$days 0)
        
$return[] = $days.' '.$lang['days'];
    
    if (
$hours 0)
        
$return[] = $hours.' '.$lang['hours'];

    if (
$minutes 0)
        
$return[] = $minutes.' '.$lang['minutes'];

    if (
$seconds 0)
        
$return[] = $seconds. (date('m/d') == '06/03' ' sex' ' '.$lang['seconds']);

    return 
implode(', '$return);
}

// Get a file's contents, or default to second param
function getContents($file$default '') {
    return !
is_file($file) || !is_readable($file) || !($contents = @file_get_contents($file)) ? $default trim($contents);
}

// Like above, but in lines instead of a big string
function getLines($file) {
    return !
is_file($file) || !is_readable($file) || !($lines = @file($fileFILE_SKIP_EMPTY_LINES)) ? array() : $lines;
}

// Make a string safe for being in an xml tag name
function string_xml_tag_unfuck($string) {
    return 
strtolower(preg_replace('/([^a-zA-Z]+)/''_'$string));
}

// Create a table out of an array. Mostly used by extensions
/*
    Example array structure:

    $structure = array(
        'root_title' => 'Name',
        'rows' => array(
            01 = array(
                'type' => 'header',
                'columns' => array(
                    'Column 1',
                    'Column 2',
                    // OR array(colspannumber, 'value')
                )
            )
            02 => array(
                'type' => 'values',
                'columns' => array(
                    'Value 1',
                    'Value 2',
                    // OR array(colspannumber, 'value')
                )
            )
        )
    );
*/
function create_table($structure) {

    
// Start it off
    
$html '
<div class="infoTable">
    <h2>'
.$structure['root_title'].'</h2>
    <table>'
;
    
    
// Go throuch each row
    
foreach ($structure['rows'] as $row) {

        
// Let shit be killed
        
$row['columns'] = array_filter($row['columns']);

        
// Ignore this if it's empty
        
if (empty($row['columns']))
            continue;

        
// Start the typical tr
        
$html .= '
        <tr>'
;

        
// Is this row a header? 
        
if ($row['type'] == 'header') {
            foreach (
$row['columns'] as $v)
                
$html .= is_array($v) ? '
            <th colspan="'
.$v[0].'"'.(array_key_exists('2'$v) ? ' style="width: '.$v[2].';"' '').'>'.$v[1].'</th>' '
            <th>'
.$v.'</th>';
        }

        
// Or is it a row saying nothing was found?
        
elseif ($row['type'] == 'none') {
            foreach (
$row['columns'] as $v)
                
$html .= is_array($v) ? '
            <td colspan="'
.$v[0].'" class="none">'.$v[1].'</td>' '
            <td class="none">'
.$v.'</td>';

        }

        
// Or is it values?
        
elseif ($row['type'] == 'values') {
            foreach (
$row['columns'] as $v)
                
$html .= is_array($v) ? '
            <td colspan="'
.$v[0].'">'.$v[1].'</td>' '
            <td>'
.$v.'</td>';

        }

        
// End the usual tr
        
$html .= '
        </tr>'
;
    }
    
    
// Closing tags
    
$html .= '
    </table>
</div>'
;

    
// Give it
    
return $html;
}

// Get a variable from a file. Include it so it doesn't pollute 
// the global namespace, and return what we want out of it, if it
// actually exists. 
function get_var_from_file ($file$variable) {

    
// Let's not waste our time, now
    
if (!is_file($file))
        return 
false;

    
// Snag that mother fucker!    
    
require_once $file;

    
// Double dollar sign means treat variable contents 
    // as the name of a variable. 
    
if (isset($$variable))
        return $
$variable;

    
// We fucked up    
    
return false;    
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0238 ]--