Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式将从本地设备发送的所有TCP数据包排队_C_Linux_Iptables_Packet Capture_Netfilter - Fatal编程技术网

以编程方式将从本地设备发送的所有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

我需要以编程方式对从本地设备发送的所有tcp数据包进行排队,以便我使用
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和我一样…)非常感谢你给我的帮助……实际上我现在正在做:)