返回列表 发帖

捕获数据包的程序设计

void dispatcher_handler(u_char *,const pcap_pkthdr *header,const u_char *pkt_data); main() { pcap_if_t *alldevs,*d; char errbuf[PCAP_ERRBUF_SIZE]; int i=0; pcap_t *adhandle; if(pcap_findalldevs(&alldevs,errbuf)==-1) { cout<<"Error in pcap_findalldevs!"; return; } for(d=alldevs,i=0;i<0;d=d->next,i++); if((adhandle=pcap_open_live(d->name,65535,1,20,errbuf))==NULL) { cout<<"Unable to open the adapter!"; pcap_freealldevs(alldevs); return; } if(pcap_datalink(adhandle)!=DLT_EN10MB) { cout<<"This program works only on Ethernet network!"; pcap_freealldevs(alldevs); return; } pcap_loop(adhandle,-1,dispatcher_handler,NULL); pcap_freealldevs(alldevs); pcap_close(adhandle); }

TOP

返回列表 回复 发帖