【问题标题】:Libpcap - Received vs. Sent packetsLibpcap - 接收与发送的数据包
【发布时间】:2019-01-04 15:59:42
【问题描述】:

我正在使用 libpcap 来捕获特定端口上的所有数据包。但是我需要分开并清楚地知道我的设备正在发送哪些数据包,以及它正在接收哪些数据包。 其实我用pcap_close()抓包,效果很好;但是如果数据包被接收或发送,struct pcap_pkthdr 不包含任何信息。

我有几个选择,但我认为它们都不是很好:

  • 我可以尝试获取我自己的 IP 并将其与 IP Header 中的 IP 进行比较,但是总是检查我的 IP 并进行比较是一个很大的负担...
  • 我可以用一个src host 和另一个dest host 做两个pcap 过滤器。但是像这样有两个过滤器是没有意义的,而且我不知道如何使用两个单独的过滤器进行捕获。

那么,我错了吗?如果没有,是否有一种有效的方法可以将接收到的数据包与发送的数据包分开? 谢谢!

【问题讨论】:

    标签: c++ c libpcap


    【解决方案1】:

    源 mac 可以判断它是入口还是出口。如果捕获的数据包具有主机的源 Mac,则为出口,否则为入口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 2012-05-20
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 2012-12-14
      • 2019-01-04
      相关资源
      最近更新 更多