pcap|libpcap网络数据包捕获函数库 的介绍与安装

  • libpcap简介
  • 下载编译安装
  • 实例
一 Libpcap简介
Libpcap是Packet Capture Libray的英文缩写,即网络数据包捕获函数库。该库提供的C函数接口用于捕捉经过指定网络接口的数据包,该接口应该是被设为混杂模式。这个在原始套接子中有提到。
著名的软件TCPDUMP就是在Libpcap的基础上开发而成的。Libpcap提供的接口函数实现和封装了与数据包截获有关的过程。
Libpcap提供了用户级别的网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap可以在绝大多数Linux平台上运行。在Windows平台上,也有一款与其功能类似的开发库:Wincap。
它的工作在上层应用程序与网络接口之间。
主要功能:
  • 数据包捕获:捕获流经网卡的原始数据包
  • 自定义数据包发送:构造任何格式的原始数据包
  • 流量采集与统计:采集网络中的流量信息
  • 规则过滤:提供自带规则过滤功能,按需要选择过滤规则
二 下载:
http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libpcap.html
三 安装编译
tar -zxvf libpcap-1.9.1.tar.gz
./configure 配置
make 编译
make install 安装,默认目录/usr/local/
将/usr/local/lib和/usr/local/include两个目录拷贝到自己程序目录下,gcc -Wl,rpath=./lib -L./lib -I./include
可能出错,请查看你是否安装了所有的依赖包bison, m4, GNU, flex以及libpcap-dev:
#yum install bison
#yum install m4
#yum install flex
四 实例
test.c:
#include #include int main() { char errBuf[PCAP_ERRBUF_SIZE], * device; device = pcap_lookupdev(errBuf); if(device) { printf("success: device: %s\n", device); } else { printf("error: %s\n", errBuf); } return 0; }

Makefile:
1 CC = gcc 2 OBJS = test.o 3 CFLAGS = -Wl,-rpath=./lib -L./lib 4 CFLAGS += -I./include 5 LIBS = pcap 6 DEST = test 7 RM = rm -f 8 9 $(DEST):$(OBJS) 10$(CC) -o $(DEST) $(OBJS) $(CFLAGS) $(addprefix -l, $(LIBS)) 11 clean: 12$(RM) $(DEST) $(OBJS) 13 14 #test: test.c 15 #gcc -o test test.c -lpcap -Wl,-rpath=./lib -L./lib -I./include 16 #clean: 17 #rm -f test.o test

运行结果:./test
success: device: ens33
【pcap|libpcap网络数据包捕获函数库 的介绍与安装】参考
https://blog.csdn.net/htttw/article/details/7521053
https://blog.csdn.net/weixin_34400525/article/details/85551430

    推荐阅读