linux下libpcap的安装和简单使用

背景

当前的项目需求是通过raw socket来获取当前物理机上指定条件(ip和端口)的包。
方法1:抓取所有的包,在用户态的recvfrom(or recv)后,再通过代码逻辑来进行过滤;
方法2:通过设置,在底层实现过滤;
从效率上来说,毫无疑问是方法2更好;
方法2的实现,依赖libpcap和BPF;在此先简单介绍一下libpcap的安装和使用;

安装

参考链接:
linux下安装libpcap
需要先安装:
1、安装GCC:
yum -y install gcc-c++(由于我当前的环境docker下已安装了gcc,所以这一步跳过)
2、安装flex:
yum -y install flex
没有flex,直接安装libpcap会提示"Your operating system’s lex is insufficient to compile libpcap"错误;
3、安装bison
yum -y install bison
前面安装的是flex,就需要搭配bison,如不会提示"don’t have both flex and bison;reverting to lex/yacc"错误;
4、安装libpcap
我是从官网下载的 libpcap-1.10.0.tar.gz 来安装的:
libpcap官方链接
下载了压缩包后解压,然后安装命令如下:
./configure
make
make install

使用

来一个简单的测试程序:

//device.c 
  #include <stdio.h>
  #include <pcap.h>
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqw198421

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值