代码之家  ›  专栏  ›  技术社区  ›  sivabudh

libpcap是否获得数据包的副本?

  •  2
  • sivabudh  · 技术社区  · 15 年前

    libpcap是否获得数据包或实际数据包的副本?

    我的意思是:使用libpcap的应用程序得到包A,内核也得到包A。

    实际上,我的意思是: 只有 使用libpcap的应用程序得到包A,但内核没有得到。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Yann Ramin    15 年前

    libpcap 不允许你做你想做的事。PCAP的目标是透明地接收系统中每个包的副本。

    您应该研究如何与系统中的现有防火墙进行交互操作,或者如何向netfilter系统(在Linux上)添加您自己的过滤器。

        2
  •  3
  •   Dean Harding    15 年前

    内核将获取数据包,然后通过一个过滤器列表(例如,通常有一个针对ipsec的过滤器、防火墙等),一旦通过所有这些过滤器,它就会将数据包传递给应用程序。libpcap是另一个过滤器,但它只是将数据包添加到内部数据库进行处理,而不是检查数据包、修改或其他过滤器将执行的任何操作。

    对于您想要做的事情,最简单的解决方案是使用防火墙。