2010-05-12 67 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是另一個過濾器,但它只是將數據包添加到內部數據庫進行處理,而不是檢查數據包,修改或其他過濾器將執行的任何操作。

對於你想要做的,最簡單的解決方案是使用防火牆。