当前位置:   article > 正文

pcap_next_ex() 捕获数据包

pcap_next

原型

int    pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **);

参数

  1. pcap_t *, //适配器
  2. struct pcap_pkthdr **, //报文头
  3. const u_char **;//报文内容

其中,

  1. struct pcap_pkthdr {
  2. struct timeval ts; /* time stamp */
  3. bpf_u_int32 caplen; /* length of portion present */
  4. bpf_u_int32 len; /* length of this packet (off wire) */
  5. };

使用

  1. //捕获数据包
  2. while ((res = pcap_next_ex(fp, &header, &pkt_data)) >= 0)
  3. {
  4. //未捕获到数据,继续捕获
  5. if (res == 0)
  6. continue;
  7. else if (res == -1)
  8. {
  9. std::cout << "捕获错误:" << pcap_geterr(fp) << std::endl;
  10. return -1;
  11. }
  12. //捕获到数据包,数据为pkt_data
  13. std::cout << header->ts.tv_sec << " " << header->ts.tv_usec << " " << header->len << std::endl;
  14. }

完整代码见NPcap捕获数据包,pcap_next_ex

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/162477
推荐阅读
相关标签
  

闽ICP备14008679号