Wuliwuliii 2021-09-23 21:49 采纳率: 0%
浏览 31
已结题

想了解有关Ubuntu系统使用C语言抓数据包并写文件成为wireshark可执行文件

我使用C语言进行抓数据包的操作,然后代码如下所示,但是不知道怎样将抓到的数据包输出成wireshark的可执行文件。请教各位了!

#include <pcap.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>

int main()
{
    pcap_if_t *alldevs;
    char errbuf[PCAP_ERRBUF_SIZE];
    if(pcap_findalldevs(&alldevs, errbuf) == -1)
    {
        printf("Error in pcap_findalldevs: %s\n", errbuf);
        exit(EXIT_FAILURE);
    }
    printf("Device name: %s\n", alldevs->name);
    printf("Descripetion: %s\n", alldevs->description);
    pcap_t *handler;
    handler = pcap_open_live(alldevs[0].name, PCAP_ERRBUF_SIZE, 1, 100, errbuf);
    if(handler == NULL)
    {
        printf("open fail\n");
        return -1;
    }

    FILE *text = fopen("Capa.pcapng", "w");
    struct pcap_pkthdr pkhdr;   //packet information
    while(1)
    {
        const unsigned char *packet = pcap_next(handler, &pkhdr);   //get a packet
        if(packet == NULL)
        {
            pcap_close(handler);
            break;
        }
        fprintf(text, "%s\n", packet);
    }
    pcap_freealldevs(alldevs);
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-09-26 09:54
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月1日
  • 创建了问题 9月23日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置