code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP,JavaScript:Netzlast-Ticker -> netzlast.inc.php
md5:0740ba12f9eb7bed3852a80fb0255706
sha1:ce4cc9140fa2712caaa46d0c8cd717d769e6cc29
  1. <?php
  2.  
  3. class Netzlast {
  4.     private $data;
  5.     private $devices;
  6.     private $htDevice;
  7.    
  8.     function __construct() {
  9.         $RawData = preg_replace('/ +/', ' ', trim( file_get_contents( '/proc/net/dev' ) ) );
  10.         $lines = explode( "\n", $RawData );
  11.         $dummy = array_shift( $lines );
  12.         $dummy = array_shift( $lines );
  13.         $htDevice['name'] = '';
  14.         $htDevice['traffic'] = -1;
  15.        
  16.         $showAllDevices = false;
  17.        
  18.         if ( isset( $_GET['device'] ) and $_GET['device'] and 'all' !=$_GET['device'] ) {
  19.             $showDevices = explode( ',', $_GET['device'] );
  20.         } else {
  21.             $showAllDevices = true;
  22.         }
  23.        
  24.         $devices = [];
  25.         foreach ( $lines as $line ) {
  26.             $tupels = explode(' ', trim( $line ) );
  27.             $tupels[0] = preg_replace( '/:$/', '', $tupels[0] );
  28.             if ( $showAllDevices or in_array ( $tupels[0], $showDevices ) ) {
  29.                 $out[$tupels[0]] = [];
  30.                 $out[$tupels[0]]['RX'] = $tupels[1];
  31.                 $out[$tupels[0]]['TX'] = $tupels[9];
  32.             }
  33.             if ( ( 0 < $tupels[1] ) and ( $tupels[9] ) ) {
  34.                 $devices[] = $tupels[0];
  35.             }
  36.             $traffic = $tupels[1] + $tupels[9];
  37.             if ( $traffic > $htDevice['traffic'] ) {
  38.                 $htDevice['name'] = $tupels[0];
  39.                 $htDevice['traffic'] = $traffic;
  40.             }
  41.  
  42.         }
  43.         $out['time']=microtime(true);
  44.         $this -> data = $out;
  45.         $this -> devices = $devices;
  46.         $this -> htDevice = $htDevice['name'];
  47.     }
  48.    
  49.    
  50.     function getNetzlastAsJson () {
  51.         return json_encode( $this -> data );
  52.     }
  53.    
  54.     function getNetzlastAsArray () {
  55.         return $this -> data;
  56.     }    
  57.    
  58.     function getDevicesAsJson () {
  59.         return json_encode( $this -> devices );
  60.     }
  61.    
  62.     function getDevicesAsList () {
  63.         return implode( ',', $this -> devices );
  64.     }
  65.    
  66.     function getDevicesAsArray () {
  67.         return $this -> devices;
  68.     }
  69.    
  70.     function getHighTrafficDevice() {
  71.         return $this -> htDevice;
  72.     }
  73.    
  74. }