Quelqu'un pourrait-il suggérer une bonne classe de renifleur de paquets pour c ++? [fermé]
-
19-08-2019 - |
Question
Quelqu'un pourrait-il suggérer une bonne classe de renifleur de paquets pour c ++? Vous recherchez une classe facile à insérer que je puisse utiliser dans mon programme c ++, rien de compliqué.
La solution
Vous ne pourrez jamais intercepter le trafic réseau simplement en insérant une classe dans votre projet. La fonctionnalité de capture de paquets nécessite une prise en charge en mode noyau. Par conséquent, vous aurez au moins besoin que votre application nécessite ou installe libpcap / WinPcap, comme l'a souligné Will Dean.
La plupart des distributions de type Unix modernes incluent libpcap out of the box, auquel cas vous pouvez jeter un oeil à cet exemple très simple: http://www.tcpdump.org/pcap.htm
Si vous utilisez Windows, vous êtes plus ou moins autonome, bien que la programmation de la WinPcap soit extrêmement similaire à la programmation libpcap (sans surprise, puisqu'il s'agit d'un portage de Win32 pour Win32.) Le SDK est disponible à l'adresse suivante: http : //www.winpcap.org/devel.htm
Quoi qu'il en soit, quel que soit le système d'exploitation, vous aurez besoin d'un accès root / administrateur pour effectuer une capture. Le simple fait d'utiliser la bibliothèque pour rejouer ou analyser des données précapturées ne nécessite bien entendu aucun privilège spécial.
Autres conseils
Vous aurez besoin de dire quelque chose à propos de votre plate-forme, car il s'agit d'une plate-forme plutôt que d'un langage.
Mais si vous êtes sur quelque chose de commun, examinez pcap ou winpcap.
Microsoft Network Monitor dispose d'une API de capture et d'analyse de paquets, voir le blog netmon pour des informations de base.