将以编程方式从本地设备发出的所有TCP数据包排队

时间:2014-03-29 14:03:07

标签: c linux iptables packet-capture netfilter

我需要queue all tcp packets以编程方式从本地设备发出,以便我使用libnetfilter_queuelibpcap实现的应用程序将开始捕获队列中的数据包。但我目前的解决方案是手动输入,

sudo iptables -A OUTPUT -p tcp -j NFQUEUE 

在运行我的应用程序之前的终端中,这是不可接受的,因为应用程序应该排队所有tcp数据包并捕获并自动显示它们。

如果专家能够提供解决方案以便sudo iptables -A OUTPUT -p tcp -j NFQUEUE在应用程序本身内完成而不需要用户在每次运行程序时在终端中键入它,我将非常感激。

谢谢:)

修改

原因我正在以编程方式寻求解决方案的原因是:在我输入iptables -F之前,设备将保留数据而不释放。我想捕获现在正在发生的数据包,修改它并发送它而不保留在队列中:)当前代码修改数据包但它保留在队列中,直到给出-F命令。 我希望将修改后的数据包发送到目的地而不必留在队列中:)

0 个答案:

没有答案