Domanda

Qualcuno potrebbe suggerire una buona classe sniffer di pacchetti per c ++? Alla ricerca di una classe facilmente inseribile che posso usare nel mio programma c ++, niente di complicato.

È stato utile?

Soluzione

Non sarai mai in grado di intercettare il traffico di rete semplicemente inserendo una classe nel tuo progetto. La funzionalità di acquisizione dei pacchetti richiede il supporto della modalità kernel, quindi sarà necessario almeno l'applicazione o l'installazione di libpcap / WinPcap, come sottolineato da Will Dean.

La maggior parte delle moderne distribuzioni simili a Unix includono libpcap pronto all'uso, nel qual caso è possibile dare un'occhiata a questo esempio molto semplice: http://www.tcpdump.org/pcap.htm

Se stai usando Windows, sei più o meno da solo, anche se la programmazione WinPcap è estremamente simile alla programmazione libpcap (non sorprende, dal momento che è una porta libpcap per Win32.) L'SDK può essere trovato qui: http : //www.winpcap.org/devel.htm

Ad ogni modo, indipendentemente dal sistema operativo, avrai bisogno dell'accesso root / amministratore per eseguire effettivamente una cattura. Il semplice utilizzo della libreria per riprodurre o analizzare i dati precatturati non richiede alcun privilegio speciale, ovviamente.

Altri suggerimenti

Dovrai dire qualcosa sulla tua piattaforma, poiché si tratta di una piattaforma piuttosto che di una lingua.

Ma supponendo che tu sia su qualcosa di comune, guarda in pcap o winpcap.

Microsoft Network Monitor ha un'API di acquisizione e analisi dei pacchetti, vedere il blog netmon per alcune informazioni di base.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top