以编程方式将从本地设备发送的所有TCP数据包排队
我需要以编程方式对从本地设备发送的所有tcp数据包进行排队,以便我使用以编程方式将从本地设备发送的所有TCP数据包排队,c,linux,iptables,packet-capture,netfilter,C,Linux,Iptables,Packet Capture,Netfilter,我需要以编程方式对从本地设备发送的所有tcp数据包进行排队,以便我使用libnetfilter\u queue和libpcap实现的应用程序将开始捕获队列中的数据包。但目前的解决方案是手动输入 sudo iptables -A OUTPUT -p tcp -j NFQUEUE 在终端中运行我的应用程序之前,这是不可接受的,因为应用程序应将所有tcp数据包排队,并自动捕获和显示它们 如果各位专家能够提供一个解决方案,使sudo iptables-a OUTPUT-p tcp-j NFQUEUE
libnetfilter\u queue
和libpcap
实现的应用程序将开始捕获队列中的数据包。但目前的解决方案是手动输入
sudo iptables -A OUTPUT -p tcp -j NFQUEUE
在终端中运行我的应用程序之前,这是不可接受的,因为应用程序应将所有tcp数据包排队,并自动捕获和显示它们
如果各位专家能够提供一个解决方案,使sudo iptables-a OUTPUT-p tcp-j NFQUEUE
能够在应用程序本身中完成,而无需用户在每次程序运行时在终端中键入,我将不胜感激
谢谢:)
编辑
我以编程方式寻找解决方案的原因是:在我输入
iptables-F
之前,设备将保留数据而不释放数据。我想捕获现在正在发生的数据包,修改它并发送它,而不将其保留在队列中:)当前代码修改数据包,但它将保留在队列中,直到发出-F命令我希望修改后的数据包被发送到目的地,而不被保留在队列中:)将应用程序包装在shell脚本中,首先运行iptables命令,然后启动应用程序。@OlafDietsche非常感谢您的支持,先生:)我会尝试一下。。只是出于好奇,netfilter没有提供任何类来用c编程实现这一点吗?我试着找,但没有找到luck@OlafDietsche为什么我要问的是,在我插入iptables-F
之前,设备将保留数据而不释放数据。我想捕获正在发生的数据包,修改它并发送它,而不将其保留在队列中:)当前代码修改数据包,但它保留在que中,直到发出-F
命令。我对此也很陌生。如果其他方法都失败,您可以查看iptables
源代码。@OlafDietsche和我一样…)非常感谢你给我的帮助……实际上我现在正在做:)