在c中为捕获的数据包创建PCAP文件

时间:2013-09-26 09:26:54

标签: c linux pcap libpcap winpcap

我正在开发一个工具,虽然我能够在接口中捕获传入的数据包(l2缓冲区和L2长度,有效负载),但我能够在控制台上打印该数据包。 现在我想将这些数据包写入pcap文件,以便我可以将此文件传输到其他平台并读取数据包信息。

如何打开pcap文件并将数据包缓冲区写入pcap文件? 如何填写struct pcap_file_header

3 个答案:

答案 0 :(得分:1)

使用pcap_dump保存数据包...此代码可能很有用:)

http://file-hub.com/cmd:thread/140400

答案 1 :(得分:0)

以下文档将指导您使用lib_pcap捕获数据包 http://www.tcpdump.org/pcap.html

答案 2 :(得分:0)

用于编写pcap使用库 pcap_file_generator

使用:

int i=0;
  const int  PKTS_COUNT = 212000;
  int PKTS_LEN =  540;
  static ethernet_data_t  eda;
  eda.len = PKTS_LEN;

  PCAPFILE * pfl = lpcap_create("./pcaplibtestfile.pcap");
  for( i=0;i< PKTS_COUNT;i++ )
  {
    /* TODO:  fill data   memcpy(eda.data , YOUR_DATA_BUF,SIZE_YOUR_DATA_BUF  );
       eda.len = SIZE_YOUR_DATA_BUF;
    */
   lpcap_write_data( pfl , &eda , i, 0 );
  }
  lpcap_close_file( pfl );