1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include "dialogimpl.h"
// Ici tu peux, sans gener personne
using namespace std;
static void my_callback(u_char *data, const struct pcap_pkthdr* hdr, const u_char* packet)
{
cout << "my_callback(...)" << endl;
DialogImpl *This = (DialogImpl*)data;
This->got_packet(hdr, packet);
}
void DialogImpl::got_packet(const struct pcap_pkthdr* hdr, const u_char* packet)
{
cout << "Hello";
}
void DialogImpl::sniffer()
{
char *dev;
char errbuf[PCAP_ERRBUF_SIZE];
pcap_t *descr;
cout << "Start" << endl;
dev = pcap_lookupdev(errbuf);
if(dev == NULL) {
cerr << errbuf << endl;
exit(1);
}
descr = pcap_open_live(dev,BUFSIZ,0,-1,errbuf);
if(descr == NULL) {
cerr << "pcap_open_live(): " << errbuf << std::endl;
exit(1);
}
pcap_loop(descr,-1,my_callback,(u_char*)this);
pcap_close(descr);
} |
Partager