是否有可能让libpcap删除一个数据包,而不是只是在它通过时嗅探它?我想拦截每个数据包并将其与测量数据一起封装到一个新数据包中,但两个数据包(我的和原始数据包)都到达目的地。
答案 0 :(得分:2)
这是不可能的。您需要编写一个驱动程序(用于您的操作系统),以使网络堆栈过滤掉数据包。
答案 1 :(得分:1)
唯一可以做到这一点的方法是成为发送方和接收方之间唯一的物理路径,并关闭拦截器上的数据包转发。
如果您正在捕获无线流量,那么您无能为力。没有软件库可以从环境空气中移除无线电波。
答案 2 :(得分:1)
不,libpcap无法“删除数据包”。
您想要实现的目标并不十分清楚,但看起来您希望接收数据,向其中添加一些其他信息并重新发布。如果您正在使用UDP等数据报协议,那么您可以简单地将扩充数据重新发送到不同的UDP端口。
答案 3 :(得分:0)
作为对Ben S的回应,您无法通过无线方式删除数据包,但可以阻止它们到达目的地 - 使用ARP缓存中毒等。
答案 4 :(得分:0)
正如其他人提到的,你不能使用libpcap。 libpcap是一个被动的倾听者。如果你在Linux上,你可以使用netfilter,它挂钩到iptables。这是一个如何做到这一点的例子。