什么是pcap,pcap_t,errbuf [PCAP_ERRBUF_SIZE]

时间:2013-11-15 14:45:29

标签: c pcap

您好我是C编程的新手。任何人都可以告诉我什么是errbuf [PCAP_ERRBUF_SIZE],pcap,pcap_t以及pcap_lookupdev()如何工作

    struct pcap_pkthdr header;
const unsigned char *packet;
char errbuf[PCAP_ERRBUF_SIZE];

char *device;
pcap_t *pcap_handle;

int i;
device = pcap_lookupdev(errbuf);

1 个答案:

答案 0 :(得分:1)

  

什么是errbuf [PCAP_ERRBUF_SIZE]

某些libpcap例程如果失败,会将错误消息放入缓冲区,以便使用libpcap的程序可以向用户报告错误。 pcap_lookupdev()是其中一个惯例;如果它返回NULL,则表示它找不到任何可以打开的设备,因此会向errbuf发送错误消息。

  

PCAP

“pcap”有时用于libpcap和WinPcap,或者用于捕获文件格式(以及其他一些代码,如Wireshark)。

  

pcap_t

pcap_t是一个句柄,用于从网络接口或包含数据包的pcap(或更新版本的libpcap,pcap-ng)文件中读取数据包。 libpcap / WinPcap例程(例如pcap_open_live()pcap_open_offline())返回pcap_t,您可以从中读取包含pcap_loop()pcap_dispatch(),{{1}等例程的数据包}和pcap_next();在较新版本的libpcap中(但尚未在WinPcap中),您也可以通过调用pcap_next_ex()获取pcap_t,在pcap_create()上设置各种选项,然后“激活”它,可以使用pcap_t进行捕获。

  

设备是什么意思

通常,设备是网络接口,例如Linux机器上的pcap_activate()eth0,Mac上的wlan0en0,BSD上的其他各种名称,Solaris,HP-UX,AIX等,或Windows上使用WinPcap的各种有些神秘的字符串。在某些平台上,libpcap还可以让您捕获计算机USB接口上的流量(原始USB流量 - 您也可以在USB网络接口上捕获,但这些就像常规网络接口一样)。