Linux: récupère les compteurs de paquets envoyés / reçus par interface (ethernet, ipv4, ipv6)
Sur Linux, comment puis-je (par programmation) récupérer les compteurs suivants sur une fonction de l'interface:
- D'envoi/de réception de trames ethernet,
- Envoyé/reçu des paquets IPv4,
- Envoyé/reçu des paquets IPv6.
source d'informationauteur Bruno Rijsman
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure de le faire à l'aide de
iptables
les règles et les compteurs de paquets, par exempleEt pour afficher les statistiques, analyser les données en sortie de ces:
Vous devriez aussi regarder le
-Z
drapeau pour lorsque vous souhaitez réinitialiser les compteurs.Sur mon système, il y a des fichiers sous
/sys/class/net/eth0/statistics
qui donne des stats sur les interfaces réseau.C'est en supposant une vague récente de Linux qui a
/sys
(sysfs) monté.Doit contenir des compteurs, des statistiques et de l'information.
Vous pouvez toujours analyser les divers noyau des fichiers d'état de vous-même, je pense que c'est ce que des outils comme
netstat
faire.La page de man suggère:
/proc/net/raw
-- Socket RAW information/proc/net/tcp
-- Socket TCP informations/proc/net/udp
-- Socket UDP informationsJe suppose qu'il doit être un non-proc façon de le faire, peut-être dans
/sys
trop? J'ai eu un coup d'oeil rapide, mais ne trouve rien.Soit juste analyser la sortie de
netstat -i
. Oustrace netstat -i
et l'utiliser pour savoir d'où il regarde pour l'information.ifconfig
vous indique la quantité de données transférées (octets et de paquets).Les commandes suivantes donnent ipv4/ipv6 stats maintenu à l'échelle du système:
Vous pouvez imprimer des statistiques ethernet avec ethtool:
ethtool -S eth1
Wireshark (anciennement Ethereal) peut vous aider avec ça.
Netstat Serait mon deuxième deviner
Vous pouvez facilement le faire en C# dans monodevelop: