2
我试图保存libpcap格式的这个文件的输出,虽然文件确实被保存并且正确的数据被写入它,Wireshark无法打开它。任何人都可以看到我在这里失踪的内容谢谢。pcap_dump文件没有被Wireshark打开
// opening the device here to listen
handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
unsigned int dlt = DLT_EN10MB;
pcap_set_datalink(handle,dlt);
FILE *filename;
filename = fopen("/workarea/capture","a+");
pcap_dumper_t * dump = NULL;
// opens the file
dump = pcap_dump_open(handle, (const char *)filename);
pcap_loop(handle,-1,my_callback,(unsigned char *)filename);
return (0);
}
void my_callback(u_char *dump,const struct pcap_pkthdr* pkthdr,const u_char *packet)
{
unsigned int i=0;
pcap_dump(dump,pkthdr,packet);
}
+1。请参阅http://www.manpagez.com/man/3/pcap_dump_open/ – 2010-08-06 23:53:14
谢谢马克。这照顾了它。 dump = pcap_dump_open(handle,“/ tmp/sniff.pcap”); pcap_loop(handle,-1,&pcap_dump,(char *)dumper); – ZionKing 2010-08-07 19:29:14
当你在它的时候,*请*检查'pcap_dump_open()'是否返回空指针;如果它返回一个空指针,该文件有*未*成功打开/创建写入,并且该程序将无法工作。 *不要*认为可能失败的呼叫不会失败。 – 2015-12-04 20:10:47