libpcap是否获得了数据包的副本?

时间:2010-05-12 00:16:07

标签: packet-capture packet-sniffers libpcap

libpcap是否获得了数据包或实际数据包的副本?

通过复制,我的意思是:使用libpcap的应用程序获取数据包A,内核也获得数据包A.

实际上,我的意思是:使用libpcap的应用程序获取数据包A,但是内核没有得到它。

2 个答案:

答案 0 :(得分:3)

内核将获取数据包然后通过一个过滤器列表(例如,通常有一个IPsec过滤器,一个防火墙等),一旦它通过所有这些过滤器,它就会将数据包传递给应用程序。 libpcap是另一个过滤器,但它只是将数据包添加到内部数据库进行处理,而不是检查数据包,修改或其他过滤器将执行的任何操作。

对于您想要做的事情,最简单的解决方案是使用防火墙。

答案 1 :(得分:3)

libpcap不允许您按照自己的意愿行事。 pcap的目标是透明地接收系统中每个数据包的副本。

您应该研究如何与系统中的现有防火墙互操作,或者如何将自己的过滤器添加到netfilter系统(在Linux上)