Verkkokorttien statistiikat

amp_god 14.01.05 17:41

Hakee /proc/net/dev tiedostosta tiedot ja parsii sen "nättiin" taulukkoon...

 Tekstiversio  Arvo: 3 (3 ääntä)  Äänestä: +  -
[code]
<?php
function cleanup($string) {
  while(preg_match("/  /", $string)) {
    $string = str_replace("  ", " ", $string);
  }
  return $string;
}

function get_if() {
  $data = file_get_contents("/proc/net/dev");
  $data = explode("\n", $data);
  foreach($data as $row) {
    $temp = explode(":", $row);
    $if = trim($temp[0]);
    $row = cleanup(trim($temp[1]));
    $row = explode(" ", $row);
    if($row[0] != "") {
      $names = array("in_bytes", "in_packets", "in_errs", "in_drop", "in_fifo", "in_frame", "in_compressed", "in_multicast",
                     "out_bytes", "out_packets", "out_errs", "out_drop", "out_fifo", "out_colls", "out_carrier", "out_compressed");
      $laskuri = 0;
      $koko = sizeof($row);
      while($laskuri < $koko) {
        $out[$if][$names[$laskuri]] = $row[$laskuri];
        $laskuri++;
      }
    }
  }
  return $out;
}

$stats = get_if();
print_r($stats);
## Jos haluaa jonkun tietyn kortin statsit niin :
$eth_in = $stats[eth0][in_bytes];
$eth_out = $stats[eth0][out_bytes];
?>
[/code]
Mallisuoritus omalta koneelta :
[code]
Array
(
    [lo] => Array
        (
            [in_bytes] => 2401916
            [in_packets] => 7866
            [in_errs] => 0
            [in_drop] => 0
            [in_fifo] => 0
            [in_frame] => 0
            [in_compressed] => 0
            [in_multicast] => 0
            [out_bytes] => 2401916
            [out_packets] => 7866
            [out_errs] => 0
            [out_drop] => 0
            [out_fifo] => 0
            [out_colls] => 0
            [out_carrier] => 0
            [out_compressed] => 0
        )

    [eth0] => Array
        (
            [in_bytes] => 1836498070
            [in_packets] => 4487868
            [in_errs] => 0
            [in_drop] => 0
            [in_fifo] => 1
            [in_frame] => 0
            [in_compressed] => 0
            [in_multicast] => 0
            [out_bytes] => 21122662
            [out_packets] => 5114587
            [out_errs] => 0
            [out_drop] => 0
            [out_fifo] => 0
            [out_colls] => 0
            [out_carrier] => 0
            [out_compressed] => 0
        )

    [ppp0] => Array
        (
            [in_bytes] => 2516825820
            [in_packets] => 3711889
            [in_errs] => 0
            [in_drop] => 0
            [in_fifo] => 0
            [in_frame] => 0
            [in_compressed] => 0
            [in_multicast] => 0
            [out_bytes] => 1680106100
            [out_packets] => 3545638
            [out_errs] => 0
            [out_drop] => 0
            [out_fifo] => 0
            [out_colls] => 0
            [out_carrier] => 0
            [out_compressed] => 0
        )

)
[/code]

Enemy1978 04:32 15.1.05 
ei toimi muuten hyvä....heh-heh
ajv 10:03 15.1.05 
Enemy1978 kirjoitti:
ei toimi muuten hyvä....heh-heh
Et vain osaa, sillä hyvinhän tämä toimii.
Entropia 12:33 15.1.05 
Code-tagi ei toimi koodikikkareessa. Käytä siis PHP:n <?php ja ?> tageja niin saa värityksen.
amp_god 23:18 15.1.05 
Hoplaa... unohtu toi <?php ekalta riviltä :)
Nooh....


Enemy1978:
Kuinka muuten olisin saanut tulostettua noi esimerkit jos scripti ei toimisi?
phadej 18:56 16.1.05 
function cleanup($string){
     return preg_replace("/ +/"," ",$string);
}
sllz 13:08 16.7.05 
eiks ton pitäis loppuu ?>