2010-05-12 29 views
2

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

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

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

+0

我这么问是因为我正在写一个应用程序,阻止任何TCP数据包被发送到本地主机Web服务器。 – sivabudh 2010-05-12 00:20:48

回答

3

libpcap不会让你做你想做的。 pcap的目标是透明地接收系统中每个数据包的副本。

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

3

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

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