- 主题
- 0
- 积分
- 0
- 贝壳
- 0 个
- 来自
- 云南曲靖
- 注册时间
- 2006-11-19
- 最后登录
- 2006-11-19
|
捕获数据包的程序设计
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);
}
|
|