我做的项目有丢弃抓包的需求。我像这样使用 libpcap
成功捕获数据包,
pcap_loop(handle, num_packets, got_packet, NULL);
在回调函数中,我在 num_packets 参数中捕获了给定数量的数据包。我的要求是丢弃捕获的数据包。
我尝试寻求帮助,结果却两手空空。非常感谢任何引用代码片段来执行通过 libpcap
丢弃捕获的数据包的要求。 :)
编辑
如果通过 libpcap
无法做到这一点,欢迎提出替代建议。
请注意,在丢弃数据包之前,我需要获取要丢弃的数据包的目标/源 ip 地址
和有效负载
。
最佳答案
我不知道,如果有图书馆。 Libpcap仅用于网络数据包捕获,据我所知。
根据我有限的知识,我会说丢弃数据包只是忽略或不转发它。然而,这不是在某些程序中完成的,而是在内核的网络堆栈中完成的。
您可以通过在 netfilter 中定义适当的规则来完成此操作.在那里,您还会找到 libnftnl ,它允许与 Linux netfilter 子系统通信。但正如我所读,您只能定义规则而不能丢弃单个数据包。
关于c - 丢弃捕获的数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730498/