¿Alguien podría sugerir una buena clase sniffer de paquetes para c ++? [cerrado]
-
19-08-2019 - |
Pregunta
¿Alguien podría sugerir una buena clase sniffer de paquetes para c ++? Buscando una clase fácil de insertar que pueda usar en mi programa c ++, nada complicado.
Solución
Nunca podrá interceptar el tráfico de red simplemente insertando una clase en su proyecto. La funcionalidad de captura de paquetes requiere soporte del modo kernel, por lo tanto, al menos necesitará que su aplicación requiera o instale libpcap / WinPcap, como señaló Will Dean.
La mayoría de las distribuciones modernas de tipo Unix incluyen libpcap fuera de la caja, en cuyo caso podría echar un vistazo a este ejemplo muy simple: http://www.tcpdump.org/pcap.htm
Si está utilizando Windows, está más o menos solo, aunque la programación de WinPcap es extremadamente similar a la programación libpcap (como era de esperar, ya que es un puerto libpcap para Win32.) El SDK se puede encontrar aquí: http : //www.winpcap.org/devel.htm
En cualquier caso, sin importar el sistema operativo, necesitará necesitar acceso root / administrador para realizar una captura. Simplemente usar la biblioteca para reproducir o analizar datos precapturados no requiere ningún privilegio especial, por supuesto.
Otros consejos
Tendrá que decir algo sobre su plataforma, ya que se trata de una plataforma en lugar de una cuestión de lenguaje.
Pero suponiendo que estés en algo común, busca en pcap o winpcap.
Microsoft Network Monitor tiene una API de captura y análisis de paquetes, consulte el blog de netmon para obtener información básica.