Libpcap-接收与发送的数据包

时间:2019-01-04 15:59:43

标签: c++ c libpcap

我正在使用libpcap捕获特定端口上的所有数据包。但是我需要分开并清楚地知道我的设备正在发送哪些数据包,以及正在接收哪些数据包。 实际上,我使用pcap_close()来捕获数据包,并且运行良好;但是无论是接收还是发送数据包,struct pcap_pkthdr都不包含任何信息。

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

  • 我可以尝试获取自己的IP并将其与IP Header中的IP进行比较,但是始终检查我的IP并进行比较会很麻烦...
  • 我可以在一个src host和另一个dest host中进行两个pcap过滤。但是,拥有两个这样的过滤器毫无意义,而且我也不知道如何使用两个单独的过滤器进行捕获。

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

1 个答案:

答案 0 :(得分:0)

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