如何在C中通过libpcap过滤入站数据包

时间:2018-06-15 15:06:08

标签: c++ wireshark ethernet pcap libpcap

最近我试图通过C / C ++中的libpcap过滤来自pcap文件的入站数据包。 这是部分代码。

  pcap = pcap_open_offline(argv[0], errbuf);
  if (pcap == NULL)
  {
    fprintf(stderr, "error reading pcap file: %s\n", errbuf);
    exit(1);
  }

  char filter_exp[] = "inbound";
  struct bpf_program pgm;
  if (pcap_compile(pcap, &pgm, filter_exp, 0, PCAP_NETMASK_UNKNOWN) == -1) {
    printf("Bad filter - %s\n", pcap_geterr(pcap));
    return 1;
  }

  if (pcap_setfilter(pcap, &pgm) == -1) {
    printf("Error setting filter - %s\n", pcap_geterr(pcap));
    return 1;
  }

但错误信息如下。

  

错误的过滤器 - 读取保存文件时,linktype 1上不支持入站/出站

有没有办法可以过滤C / C ++中的入站数据包?

0 个答案:

没有答案