6
votes

Linux C ++: Accès aux statistiques de réseau

Je développe un programme statistique réseau en C ++ pour Linux.

Je voudrais accéder à des informations statistiques sur la connexion réseau actuelle.

E.g.:

  • Perte de paquets,
  • octets transférés (téléchargement et téléchargement),
  • Charge réseau actuel (téléchargement et téléchargement),

    toute idée d'accéder à ce type d'information?


    Donc, j'ai essayé d'accomplir mon objectif en utilisant DE / PROC, nous pouvons trouver beaucoup d'informations, mais il y a des informations manquantes dont j'ai besoin. Je pense à développer une application de promiscuité simple C ++, utilisant LibPCap, qui capture le trafic réseau dont j'ai besoin et commence à prendre les mesures que je veux.

    Le con est que je pense que cela va être intensif de la CPU, au moins plus encore nécessaire ... Des pensées à ce sujet?


1 commentaires

Gardez à l'esprit que les systèmes n'ont généralement pas une seule connexion réseau «actuelle». Vous devrez également proposer une définition de la "connexion réseau actuelle" afin que vous sachiez quelle interface vous voulez réellement regarder


4 Réponses :


1
votes

Beaucoup d'informations sont disponibles dans les "fichiers" dans / proc / net .

/ proc / net / netstat serait un bon endroit pour commencer.


0 commentaires

4
votes

Toutes ces informations sont diffusées dans les fichiers / PROC / NET (mis à jour par noyau). Le fichier le plus important est / proc / net / netstat . Dans / PROC / NET / DEV Il existe des statistiques de périphérique. Vous pouvez ouvrir et analyser.


0 commentaires

1
votes

AFAIK, il est possible de récupérer des informations de statistiques par programme via le Interface RTnetLink . Voir par exemple Ce courrier pour des exemples


0 commentaires

1
votes

Vous pouvez accéder aux statistiques de réseau / sys / classe / net / nom_of_device / statistiques .


0 commentaires