【问题标题】:create PCAP file for captured packet in c在c中为捕获的数据包创建PCAP文件
【发布时间】:2013-10-02 04:35:37
【问题描述】:

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

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

【问题讨论】:

    标签: c linux pcap libpcap winpcap


    【解决方案1】:

    用于编写 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 );
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我有要写入 pcap 文件的数据包缓冲区
      • 你是如何读取数据包的?如果您将pcap_loop 与调度函数一起使用,则数据包头和数据包数据将传递给该函数...您想共享您的代码吗?您可能会得到更适合您需求的答案
      猜你喜欢
      • 2010-10-15
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多