Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2993 connectés 

 


Dernière réponse
Sujet : Prog pour compter le trafic qui passe sur une interface reseau
splurf Un truc sympa est SNMP et MRTG => génération de grphiques, un coup de crontab et c'est actualisé en temps voulu et zou ça te sort la page web ;)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
splurf Un truc sympa est SNMP et MRTG => génération de grphiques, un coup de crontab et c'est actualisé en temps voulu et zou ça te sort la page web ;)
nicotine qq lignes de php pour lire /proc/net/dev
 
 // ---------------------------------
 function stat_reseau()
   {
    $results = array();
 
    if ( $fd = fopen("/proc/net/dev", "r" ) ) {
        while ( $buf = fgets($fd, 4096)) {
 
            if ( preg_match( "/:/", $buf ) ) {
                list( $dev_nom, $stats_list ) = preg_split( "/:/", $buf, 2 );
 
                $stats = preg_split( "/\s+/", trim($stats_list) );
                $results[$dev_nom] = array();
 
                $results[$dev_nom]['recu_bytes'] = $stats[0];
                $results[$dev_nom]['recu_packets'] = $stats[1];
                $results[$dev_nom]['recu_errs'] = $stats[2];
                $results[$dev_nom]['recu_drop'] = $stats[3];
 
                $results[$dev_nom]['envoye_bytes'] = $stats[8];
                $results[$dev_nom]['envoye_packets'] = $stats[9];
                $results[$dev_nom]['envoye_errs'] = $stats[10];
                $results[$dev_nom]['envoye_drop'] = $stats[11];
 
                $results[$dev_nom]['errs'] = $stats[2] + $stats[10];
                $results[$dev_nom]['drop'] = $stats[3] + $stats[11];
            }
        }
    }
 
    return $results;
  }
 
 
 // recup du tableau
 $net = stat_reseau();
   
 // decomposition et tout ce qu'on veut ...  
 while ( list($dev,$stat) = each($net) ) {
 
        $dev = trim($dev);
        if ($dev == "lo" ) continue;
 
        if ($dev == "ppp0" )  {
            get_bytes += $stat['recu_bytes'];
            send_bytes += $stat['envoye_bytes'];
          }
  .........
  ..........
  etc ...
nicotine si t'as mrtg installé , avec snmp , ya un pti script php  MRTG Total Traffic Generator . il va lire les logs de mrtg....en plus d'un joli graphe .
 
sinon tu peux tjs lire /proc/net/dev  ;)
Dark_Schneider k,etload, mais je ne suis pas sûr
PinG y'a aussi la version super porc (ma préférée) :

Code :
  1. print "Recus :\t$1\nEmis :\t$2\n" if (<STDIN> =~ /\((.+)\).*\((.| +)\)/);


... ca tiens sur une ligne, on peut le foutre dans un 'perl -e' pour être évalué sur la ligne de cmd sans créer le programme.... Mais créé quand même le fichier, sinon tu pourras pas traiter $1 et $2 à ta convenance après ;)

PinG

Code :
  1. #! /usr/bin/perl
  2. # rxtx.pl made on 2001/10/04 by _PinG_ ping@root42.net
  3. $bla = <STDIN>;
  4. $mis :\t$2\n" if ($bla =~ /\(([a-zA-Z0-9. ]+)\).*\(([a-zA-Z0-9. ]+)\)/);


 
;)
Je fout les valeurs dans $1 (recus) et $2 (émis)...
 
ifconfig eth0 | grep "RX bytes" | rxtx.pl
Si tu aimes le perl tu peux jouer avec après...
PS1 : C'est du vite fait, c pour ca que j'utilise grep ;)
J'aurais pu le faire avec sed et gawk (voire même gawk tout seul, mais perl roulaize :p, et puis y'a pas mieux que le perl pour coder rapide)
PS2 : la regexp est pas belle, mais comme ca, ca devrais marches même avec une Mandrake ;)

Boris l'invincible en php tu sais recup ca sans pb :)
en d'autre languiage aussi surement mais bon :)
cassidy ouais mais j'aimerais qu'il l'enregistre qqpart
 
Enfait en gros c pour voir le debit que je fais sur mon adsl sur un mois
PinG tu peux le voir avec ifconfig :  
 

Code :
  1. eth0      Link encap:Ethernet  HWaddr 00:50:FC:25:0B:6C 
  2.           inet addr:192.168.13.20  Bcast:192.168.13.255  Mask:255.255.255.0
  3.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  4.           RX packets:431377 errors:5 dropped:1 overruns:1 frame:0
  5.           TX packets:255408 errors:0 dropped:0 overruns:0 carrier:0
  6.           collisions:1021 txqueuelen:100
  7.           RX bytes:293473641 (279.8 Mb)  TX bytes:31750115 (30.2 Mb)
  8.           Interrupt:10 Base address:0xd000

cassidy Voila j'aimerais trouver un compteur de transfert sur une interface donnée sous linux. Par ex voir cb de go sont transite (en up et donwn) sur le eth0 ou ppp0
 
merci

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)