2

是否可以让 libpcap 删除一个数据包,而不是在它通过时嗅探它?我想拦截每个数据包并将其与测量数据一起封装成一个新数据包,但两个数据包(我的和原始数据包)都到达目的地。

4

5 回答 5

2

这是不可能的。您需要编写一个驱动程序(适用于您的操作系统)以使网络堆栈过滤掉数据包。

于 2009-08-16T16:59:07.140 回答
1

您可以做到这一点的唯一方法是成为发送方和接收方之间的唯一物理路径,并关闭拦截器上的数据包转发。

如果您正在捕获无线流量,则无能为力。没有软件库可以从环境空气中去除无线电波。

于 2009-08-16T16:58:38.483 回答
1

不,libpcap 不能“删除数据包”。

不太清楚您想要实现什么,但看起来您想要接收数据,向其中添加一些附加信息,然后重新发布它。如果您正在使用诸如 UDP 之类的数据报协议,那么您可以简单地将增强数据重新发送到不同的 UDP 端口。

于 2009-12-06T20:12:44.697 回答
0

正如其他人提到的,您不能使用 libpcap。libpcap 是一个被动监听器。如果你在 Linux 上,你可以使用一个 netfilter,它连接到 iptables。这是一个如何做到这一点的例子。

http://www.linuxjournal.com/article/7184

于 2013-10-11T16:15:21.457 回答
0

作为对 Ben S 的回应,您无法从空中删除数据包,但您可以阻止它们到达目的地 - 使用 ARP 缓存中毒等。

于 2011-02-14T18:28:26.637 回答