首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取保存文件时,链接类型1不支持入站/出站

读取保存文件时,链接类型1不支持入站/出站
EN

Stack Overflow用户
提问于 2018-06-16 01:45:27
回答 1查看 512关注 0票数 1

从pcap获取传入数据包。我在pcap_compile()中设置了“入站”过滤器,下面是部分代码。

代码语言:javascript
复制
  pcap = pcap_open_offline("test.pcap", 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;
  }

但这是错误信息。

坏过滤器-在读取保存文件时,链接类型1不支持入站/出站。

我只是搜索并找到了可能的解决方案。

How to filter the inbound packet by libpcap in C:

“入站”过滤器对于以太网链路类型是不可用的(熟透的捕获会有它)。对目标MAC或IP地址进行过滤是否足以满足您的需要?

How to determine packet direction using libpcap:

源或目标IP地址就足够了。如果源是本地的,则是出站。如果目标是本地的,那么它是入站的。如果两者都没有,那就是一种滥交的嗅觉。

看起来唯一的方法是确定数据包的目标IP地址是否是本地的。但是如何从pcap中知道本地IP地址呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-16 12:54:30

Barmar是对的,因为您无法确定一个IP地址是否仅从pcap中本地。但是,如果您知道不是在杂乱的接口上捕获的,那么可以尝试猜测接口的地址。

您可以猜测IP地址或以太网地址。以太网地址可能是最好的,因为您的pcap中可能没有IP数据包。但是,可能不太清楚哪个以太网地址是您的接口地址,因为网关的地址也将包含在大量的数据包中。

猜测接口的以太网地址

代码语言:javascript
复制
$ tshark -r tmp.pcap -T fields -e eth.src -e eth.dst | grep -Po "(\w{2}:){5}\w{2}" | sort | uniq -c
     11 01:00:5e:00:00:01
     41 01:00:5e:00:00:fb
     11 01:00:5e:00:00:fc
     27 01:00:5e:7f:ff:fa
     34 00:00:00:00:00:01
     31 00:00:00:00:00:fb
  11815 00:00:d9:97:5b:37
    905 00:00:eb:12:48:d6
  11115 00:00:b0:7b:ce:08
     80 ff:ff:ff:ff:ff:ff

每个以太网地址都显示它包含的数据包数量(作为源或目的地)。数据包数量最多的以太网地址可能是您的接口地址,第二大地址可能是网关的地址。

以接口地址作为目的地的数据包是入站数据包,反之亦然。

猜测接口的IP地址

代码语言:javascript
复制
tshark -r tmp.pcap -T fields -e ip.src -e ip.dst ip | grep -Po "(\d+.){3}\d+" | sort | uniq -c

同样的原则,您应该看到一个IP地址有大量的数据包。很可能是你的界面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50884335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档