libpcap抓包有重复包
lhmht 2014-04-03 03:57:03 哪位牛人帮忙看下哪里有问题,为什么我用libpcap函数抓包会有重复包呢?(重复的包在包的结尾)
while(flag)
{
if (nIndex == 0||time(&endtime)-rawtime==sec){
nIndex = 1;
if (p)
pcap_dump_close(p);
time(&rawtime);
char timE[100];
sprintf(timE,"%ld",rawtime);
//time(&rawtime);
//timeinfo = localtime(&rawtime);
//size_t len = strftime(timE,15,"%Y%m%d%k%M%S\n",timeinfo);
string tmp1 = GetIniKeyString("COMMON","ProbeID","pro.ini");
string tmp2 = GetIniKeyString("COMMON","DeviceID","pro.ini");
string filename = "HB_ALL_" + tmp1 +"_" + tmp2 + "_" + timE + ".pcap";
filename = tmp3 + filename;
cout<<"filename=="<<filename<<endl;
system(buffer);
p = pcap_dump_open(handle, filename.c_str());
if(p == NULL)
{
printf("Error:%s\n","pcap_dump_open");
return -1;
}
}
struct pcap_pkthdr *phdr = NULL;
pcap_next_ex(handle,&phdr,&packet);
if(phdr->len == 0)
continue;
pcap_dump((u_char *)p,phdr,packet);
}