HEX
Server: Apache/2.4.67 (Debian)
System: Linux hosting103 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User: muzikaecom (1013)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/local/share/hostingplatform/scripts/__getHostingPackageBandwidth
#!/usr/bin/env php
<?php
if (count($argv) < 2) die ("usage: {$argv[0]} <packagename>\n");

$packagename = $argv[1];

if($packagename && strlen($packagename)) {
 $out = -1;

   $pattern = "/(?xU)
    \S+             	# address
    \s+


    \S+\s+\S+\s+    	# - -


    # date
    \[			# date opening bracket
     (?P<day>\d+)	# day
     \/

     (?P<month>\w+)	# month
     \/

     (?P<year>\d+)	# year

     :.*		# time
    \]			# date closing bracket
    \s+


    # URL
    \".*\"
    \s+

    \d+			# Status code
    \s+	

    (?P<size>\d+)	# Size
    \s+

    # Reminder...
    .*
   /";

 $current_month = date("M");
 $current_year  = date("Y");

 $db = new SQLite3("/var/local/hostingplatform/db.sqlite");
 $db->query("PRAGMA foreign_keys = ON");
 $escaped_packagename = $db->escapeString($packagename);

 $domains_query = "
  SELECT
   hosting_domains.domainname as domainname
  FROM
   hosting_domains
  WHERE
   hosting_domains.packagename = '$escaped_packagename'
  ORDER BY
   hosting_domains.domainname
 ";

 $result = $db->query($domains_query);
 while($data = $result->fetchArray(SQLITE3_ASSOC)) {
  $ifp = fopen("/var/log/apache2/hostingpackages/$packagename/{$data["domainname"]}-access.log", "r");

  if ($ifp) {
   if ($out < 0) $out = 0;

   while (!feof($ifp)) {
    $r = preg_match($pattern, fgets($ifp), $matches);
    if ($r && $matches["month"] == $current_month && $matches["year"] == $current_year) {
     $out += round($matches["size"]);
    }
   }
  }
 }

 $return = array(
	"bandwidth" => ($out > 0 ? round($out/1024/1024) : -1),
 );
 print json_encode($return);
 exit(0);
}
?>