libpcap pcap_create()和pcap_activate()函数

在libpcap版本1.0之前,没有pcap_create()和pcap_activate()函数,获取实时捕获句柄需要通过pcap_open_live()获得。
新版本中,通过pcap_create()和pcap_activate()来获得捕获句柄。

使用libpcap 1.0之后的版本中,推荐使用新的函数。

函数原型:

pcap_t *pcap_create(const char *source, char *errbuf);
pcap_create()用来创建一个包捕获句柄,参数source是网络设备的名称(网卡名,如eth0),如果source参数是"any"或者NULL,可以从所有的网口捕获数据。返回的句柄pcap_t *必须通过pcap_activate()激活。
int pcap_activate(pcap_t *p);
pcap_activate()用来激活包捕获句柄。参数p是pcap_create()的返回值。若成功返回0,若失败则返回非零负数,若返回非零正数则表示成功但是有警告。

void CCapture::capWork()
{
    const char *dev = "enp3s0";
    pcap_t *pcapHandler = NULL;
    char errbuf[PCAP_ERRBUF_SIZE] = {0};
    pcapHandler = pcap_create(dev, errbuf);
    if (pcapHandler == NULL)
    {
        cout<<errbuf<<endl;
        exit(-1);
    }
    int ret = pcap_activate(pcapH
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值