Bonjour,

Existe t'il une fonction PHP qui donne le volume du trafic entrant ou sortant d'une interface réseau ?
Actuellement, j'utilise, ou, autrefois, Mais c'est lourd, il faut lancer la commande linux dans un shell, et désosser le résultat avec une regex.
Et risqué: si ip a ou ifconfig changent la présentation de leur sortie.

Tout comme la commande PHP filesize('nom_du_fichier') permet d'en connaître la taille,
sans devoir passer par un shell_exec('ls -l '.$nom_du_fichier), dont on désosserait la sortie par une regex.


Voilà ce que je voudrais obtenir, directement par une fonction PHP, si elle existe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
christian@jupiter:~$ ip -s -c -h a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    447k       3.75k    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    447k       3.75k    0       0       0       0       
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 4c:cc:6a:d8:61:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s31f6
       valid_lft 82663sec preferred_lft 82663sec
    inet6 fdf0:fec:7e22:b900:e4ff:53ce:f186:9afc/64 scope global temporary dynamic 
       valid_lft 7040sec preferred_lft 3440sec
    inet6 fdf0:fec:7e22:b900:59c2:42ce:f00d:b00e/64 scope global mngtmpaddr noprefixroute dynamic 
       valid_lft 7040sec preferred_lft 3440sec
    inet6 fe80::c00c:3cdc:87a1:21cb/64 scope link 
       valid_lft forever preferred_lft forever
    RX: bytes  packets  errors  dropped overrun mcast   
    34.7M      35.4k    0       0       0       15      
    TX: bytes  packets  errors  dropped carrier collsns 
    3.24M      25.2k    0       0       0       0       
christian@jupiter:~$ ifconfig
enp0s31f6 Link encap:Ethernet  HWaddr 4c:cc:6a:d8:61:19  
          inet adr:192.168.1.100  Bcast:192.168.1.255  Masque:255.255.255.0
          adr inet6: fdf0:fec:7e22:b900:59c2:42ce:f00d:b00e/64 Scope:Global
          adr inet6: fdf0:fec:7e22:b900:e4ff:53ce:f186:9afc/64 Scope:Global
          adr inet6: fe80::c00c:3cdc:87a1:21cb/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:35385 erreurs:0 :0 overruns:0 frame:0
          TX packets:25179 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:34716008 (34.7 MB) Octets transmis:3235948 (3.2 MB)
          Interruption:16 Mémoire:df100000-df120000 

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          Packets reçus:3751 erreurs:0 :0 overruns:0 frame:0
          TX packets:3751 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          Octets reçus:447343 (447.3 KB) Octets transmis:447343 (447.3 KB)

christian@jupiter:~$
Pour la loopback localhost, avec une variable, j'ai assez, puisque le volume entrant de la boucle locale est identique au volume sortant.
Puisque PHP peut directement consulter la taille d'un fichier, sans passer par un shell, pourrait-il relever le compteur de mes interfaces réseaux ?
Merci,
Christian.