在Linux Ubuntu中使用C ++过滤以太网数据包

时间:2016-07-14 11:01:47

标签: c++ linux qt ubuntu networking

我想过滤接收(或发送)网络的数据包,我不想要它们的副本,我想过滤数据包,如果需要,丢弃该数据包。所以我想在以太网层访问该数据包,我想过滤像ARP这样的数据包。

我想在linux,Ubuntu中使用C ++,QT。

任何人都可以帮助我使用图书馆或其他东西吗?或者某种东西排成一本书或者这个东西。我之前搜索过NETFilter,但那对我没有帮助。

由于

2 个答案:

答案 0 :(得分:0)

Qt没有为链路层实现数据包捕获功能。您可以使用libpcap在Linux上捕获数据包。您的程序几乎肯定需要root权限才能以这种方式使用网络接口。

答案 1 :(得分:0)

您需要为linux编写以太网网络驱动程序。在套接字级别,您附加一个过滤器,以便只接受符合过滤器规则的数据包并将其传递给套接字。 这个link将是一个良好的开端。