抓包函数-pcap_next



抓包函数
       pcap_next_ex, pcap_next 抓包

       #include

       int pcap_next_ex(pcap_t *p, struct pcap_pkthdr **pkt_header,
               const u_char **pkt_data);
       const u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h);

       pcap_next_ex()从网卡上读包,成功获取,则参数pkt_header指向一段内存,该内存是关于包的一些信息,参数pkt_data指向抓到的数据报文
       pcap_next()抓包(类似抓包函数pcap_dispatch,指定参数cnt为1),返回一个无符号指针指向抓取到的数据,参数h为包的一些基本信息
     
返回值:pcap_next_ex()
 返回值1  成功抓取到包
 返回值0  表示抓包超时
        返回值-1 抓包出错,可调用 pcap_geterr()或者pcap_perror()来调试出错信息
        返回值-2 文件中包已经读取完毕
        pcap_next()
        成功则返回指向数据包的指针
        出错则返回控指针,抓包出错,从网卡上抓不到包(包因为过滤条件都被丢弃了,超时了,抓包句柄指向的网卡不支持阻塞模式而且没有任何包经过该网卡),在文件中没有包,没有有效地方法来判断该函数出错的原因

你可能感兴趣的:(libpcap)