pcap_open()在libpcap中不可用

时间:2014-03-24 04:26:43

标签: libpcap

我想在Kali linux的Qt中通过libpcap创建一个应用程序。我在windows&中创建了类似的应用程序确实有效。

我下载&安装libpcap。现在,Qt认识到pcap.h,但有些功能和常量不起作用。像:

pcap_open - PCAP_OPENFLAG_PROMISCUOUS - pcap_findalldevs_ex - PCAP_SRC_IF_STRING - _snprintf_s.

在此范围内未声明与'sth'类似的编译器错误。 我使用下面的标题,但高于错误apppear。

#define HAVE_REMOTE
#define WPCAP
#include <pcap.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

3 个答案:

答案 0 :(得分:1)

添加  LIBS + = - lpcap 在.pro文件的末尾。它将解决问题。

答案 1 :(得分:1)

WinPcap添加了libpcap中不具备的一些API(libpcap的版本比最新的WinPcap版本所基于的版本更新的版本具有WinPcap中没有的API)。

pcap_open()是其中一个API;它在libpcap中可用 NOT 。您必须使用pcap_open_live()或在libpcap 1.x,pcap_create()pcap_activate()中使用。

libpcap目前还不支持远程数据包捕获。

答案 2 :(得分:0)

我搜索过&amp;发现winpcap中的某些功能在libpcap中不起作用(正如Guy Harris所说)。

对于Linux中的Qt程序员,他们必须在.pro文件中添加以下代码:

LIBS += -L/usr/local/lib/ -lpcap