> /var/log/ppp-usage // #----------------------- /etc/ppp/ip-down ----------------------------------- // // Make sure, online.php can access this file (e.g. chmod 644) // // // // Version: 0.7 - 01.11.2003 // // Copyrighted by GPL, Author: Claas Langbehn // Please sent me your patches etc. // // You can get this script at: http://www.rootdir.de/online/ // // Changes by Koala [18.02.2003] // - is the logfile not readable, print a error message // - any small formating errors fixed (php- and html-code) // - undefined variables fixed // - adaptations for "register_globals = off" // // Changes by Koala [01.11.2003] // - Codekosmetik // - Detailübersicht wurde um die Spalte Tag erweitert // - Sprache wechselbar // - Jahresauswahl // // and in english: // - cleaned up some code // - one more collumn "day" in detail view // - Language switch // - Year selector // // //----------------------------------------------------------------------------------- // settings //----------------------------------------------------------------------------------- $ppp = 'ppp0'; $title = $ppp.' link Statistik'; $logfile = '/var/log/ppp-usage'; /** * Sprache * * @param string de, en */ $lang = 'de'; /** * soll das aktuelle Jahr in der Uebersicht angezeigt werden oder alle Jahre * * @param int 1 - aktuelles Jahr * 0 - alle Jahre */ $jahreswahl = 0; //----------------------------------------------------------------------------------- // there is nothing to edit below this line //----------------------------------------------------------------------------------- $version = '0.7 - 01.11.2003'; switch ($lang) { case 'en': $_LANG[1] = 'Can not read the logfile "'.$logfile.'". Check the access rights.'; $_LANG[2] = 'Can not read "/proc/net/dev". Check the access rights.'; $_LANG[3] = 'Current connection'; $_LANG[4] = 'month'; $_LANG[5] = 'connects'; $_LANG[6] = 'online time'; $_LANG[7] = 'data sent'; $_LANG[8] = 'data received'; $_LANG[9] = 'transfered
volume'; $_LANG[10] = 'day'; $_LANG[11] = 'Back'; $_LANG[12] = 'online time: days - hours:minutes:seconds'; $_LANG[13] = 'Year'; break; default: $_LANG[1] = 'Konnte die Logdatei "'.$logfile.'" nicht lesen. Überprüfe die Zugriffsrechte.'; $_LANG[2] = 'Konnte /proc/net/dev nicht lesen. Überprüfe die Zugriffsrechte.'; $_LANG[3] = 'Aktuelle Verbindung'; $_LANG[4] = 'Monat'; $_LANG[5] = 'Verbindungen'; $_LANG[6] = 'Verbindungs-
dauer'; $_LANG[7] = 'Gesendete
Daten'; $_LANG[8] = 'Empfangene
Daten'; $_LANG[9] = 'Übertragungs-
volumen'; $_LANG[10] = 'Tag'; $_LANG[11] = 'Zurück'; $_LANG[12] = 'Verbindungsdauer: Tage - Stunden:Minuten:Sekunden'; $_LANG[13] = 'Jahr'; break; } if (isset($_GET['monat'])) { $monat = $_GET['monat']; } if ((isset($_POST['jahr']) and $_POST['jahr'] != 'all') or (isset($_GET['jahr']) and $_GET['jahr'] != 'all')) { if (isset($_POST['jahr'])) { $jahr = $_POST['jahr']; } elseif (isset($_GET['jahr'])) { $jahr = $_GET['jahr']; } } else { if ($jahreswahl) { $jahr = date('Y'); } else { $jahr = ''; } } if ((isset($_POST['new_year']) and $_POST['jahr'] != 'all') or (isset($_GET['new_year']) and $_GET['jahr'] != 'all')) { if (isset($_POST['new_year'])) { $new_year = $_POST['new_year']; } elseif (isset($_GET['new_year'])) { $new_year = $_GET['new_year']; } } else { $new_year = 0; } // function to print the connect-time in dd:hh:mm:ss-format function zeitberechnung ( $secs ) { $tage = intval($secs/86400); $secs = $secs-$tage*86400; $std = intval($secs/3600); $secs = $secs-$std*3600; $min = intval($secs/60); $secs = $secs-$min*60; return sprintf ("%2d - %02d:%02d:%02d", $tage, $std, $min, $secs); } /** * HTML-Teil der Detailausgabe * */ function Detail_Ausgabe($olddat, $verb, $zeit, $rcvd, $sent) { global $new_year, $jahr; $lrcvd = number_format ($rcvd/1024/1024,2,'.',' '); $lsent = number_format ($sent/1024/1024,2,'.',' '); $ltraf = number_format (($sent+$rcvd)/1024/1024,2,'.',' '); $ausgabe = ' '.$olddat.' '.$verb.' '; $ausgabe .= zeitberechnung($zeit); $ausgabe .= ' '.$lsent.' MB '.$lrcvd.' MB '.$ltraf.' MB '."\n"; return $ausgabe; } function show_connection( $logfile, $monat ) { global $_LANG, $jahr, $new_year; // read logfile, calculate and display information $zeit = $rcvd = $sent = $verb = 0; $anz = 1; if (!$handle = @fopen($logfile, 'r')) { echo $_LANG[1]; return false; } while (!feof($handle)) { if (!isset($monat) || ($monat == '')) { ////////////////////////////// // Detailansicht ------------ // detail view -------------- ////////////////////////////// $zeile = chop(fgets($handle, 80)); $tmp = split(" ",$zeile); // Felder: Datum Zeit connected[s] sent received $dat = substr($tmp[0],3,7); if (!isset($olddat)) { $olddat = ''; } if ($new_year) { // $jahr ist das uebergebene Jahr aus dem Formular $jahr_aus_form = $jahr; /* if ($zeile != '') { $vergleichsjahr = substr($dat,3,4); } else { $vergleichsjahr = $jahr_aus_form; } if ($zeile == '' and substr($olddat,3,4) != $jahr_aus_form) { $vergleichsjahr = substr($olddat,3,4); } */ if (substr($dat,3,4) == $jahr_aus_form or substr($olddat,3,4) == $jahr_aus_form) { if (substr($dat,3,4) > $jahr_aus_form) { echo Detail_Ausgabe($olddat, $verb, $zeit, $rcvd, $sent); @fclose($handle); break; } if ($olddat != $dat and $olddat != '') { echo Detail_Ausgabe($olddat, $verb, $zeit, $rcvd, $sent); $zeit = $rcvd = $sent = $verb = 0; } // if ($olddat != $dat and $olddat != '') if ($tmp[0] != '') { $zeit = $zeit+$tmp[2]; $sent = $sent+$tmp[3]; $rcvd = $rcvd+$tmp[4]; } // if ($tmp[0] != '') $verb++; $olddat = $dat; } // if (substr($dat,3,4) == $jahr_aus_form) } else { // if ($new_year) if ($olddat != $dat and $olddat != '') { echo Detail_Ausgabe($olddat, $verb, $zeit, $rcvd, $sent); $zeit = $rcvd = $sent = $verb = 0; } // if ($olddat != $dat and $olddat != '') if ($tmp[0] != '') { $zeit = $zeit+$tmp[2]; $sent = $sent+$tmp[3]; $rcvd = $rcvd+$tmp[4]; } // if (count($tmp) > 0) $verb++; $olddat = $dat; } // if ($new_year) } else { ////////////////////////////// // allgemeine Uebersicht ---- // general overview --------- ////////////////////////////// // Felder: Datum Zeit connected[s] sent received $zeile = chop(fgets($handle, 80)); $tmp = split(" ",$zeile); if (count($tmp) > 1) { $dat = substr($tmp[0],3,7); $jahr_log = substr($tmp[0],6,4); if ($dat == $monat) { $tag = substr($tmp[0],0,2); $lrcvd = number_format($tmp[4]/1024/1024,2,'.',' '); $lsent = number_format($tmp[3]/1024/1024,2,'.',' '); $ltraf = number_format(($tmp[3]+$tmp[4])/1024/1024,2,'.',' '); echo ''.$anz.''; echo ''.$tag.''; echo ''.zeitberechnung($tmp[2]).''; echo ''.$lsent.' MB '.$lrcvd.' MB '.$ltraf.' MB '."\n"; $anz++; $zeit = $rcvd = $sent = $verb = 0; } // if($dat == $monat) } // if (count($tmp) > 0) } // if ($olddat != $dat) } // while @fclose($handle); } // show_connection( $logfile,$monat ) /** * erstelle Select-Auswahl */ function change_year( $logfile ) { global $_LANG, $jahr; if (!$handle = @fopen($logfile, 'r')) { echo $_LANG[1]; return false; } $tmp_jahr = ''; while (!feof($handle)) { // Felder: Datum Zeit connected[s] sent received $zeile = chop(fgets($handle, 80)); $tmp = split(" ",$zeile); if (count($tmp) > 1) { $jahr_log = substr($tmp[0],6,4); if ($tmp_jahr != $jahr_log) { if ($jahr_log == $jahr) { $selected = 'selected'; } else { $selected = ''; } echo ''."\n"; $tmp_jahr = $jahr_log; } // if ($tmp_jahr != $jahr_log) } // if (count($tmp) > 0) } // while fclose($handle); } // change_year( $logfile ) /** * read, calculate and display information about the current connection */ function print_current( $ppp ) { global $_LANG; if (!$handle = @fopen('/proc/net/dev', 'r')) { echo $_LANG[2]; return false; } while (!feof($handle)) { $zeile = ereg_replace(":"," ",trim(fgets($handle, 400))); $zeile = ereg_replace("[[:space:]]+"," ",$zeile); $tmp = split(" ",$zeile); // Felder: Datum Zeit connected[s] sent received if ($tmp[0] == $ppp) { $lrcvd = number_format($tmp[1]/1024/1024,2,'.',' '); $lsent = number_format($tmp[9]/1024/1024,2,'.',' '); $ltraf = number_format(($tmp[1]+$tmp[9])/1024/1024,2,'.',' '); print ' '.$_LANG[3].': '.$lsent.' MB '.$lrcvd.' MB '.$ltraf.' MB '."\n"; $zeit = $rcvd = $sent = $verb = 0; } // if ($tmp[0] == $ppp) } // while (!feof($handle)) fclose($handle); } // print_current( $ppp ) //phpinfo(); ?> <?php print($title); ?>

:

'; show_connection($logfile,''); print_current($ppp); } else { print ' '; show_connection($logfile,$monat); print ''."\n"; } // if (!isset($monat) || ($monat == '')) ?>
'.$_LANG[4].' '.$_LANG[5].' '.$_LANG[6].' '.$_LANG[7].' '.$_LANG[8].' '.$_LANG[9].'
  '.$_LANG[10].' '.$_LANG[6].' '.$_LANG[7].' '.$_LANG[8].' '.$_LANG[9].'
« '.$_LANG[11].'

Version