- 概述
- libpcap是一个网络数据包捕获函数库,tcpdump就是以libpcap为基础的。
- 主要作用:
- 捕获各种数据包,例如:网络流量统计
- 过滤网络数据包,例如:过滤掉本地上的一些数据,类似防火墙
- 分析网络数据包,例如:分析网络协议,数据的采集
- 存储网络数据包,例如:保存捕获的数据以为将来进行分析
- libpcap的抓包框架
- pcap_lookupdev():函数用来查找网络设备,返回可被pcap_open_live()函数调用的网络设备名指针。
- pcap_lookupnet():函数获得指定网络设备的网络号和掩码。
- pcap_open_live():函数用于打开设备,并且返回用于捕获网络数据包的数据包捕获描述字。对于此网络设备的操作都要基于此网络设备描述字。
- pcap_compile():函数用于将用户制定的过滤策略编译到过滤程序中
- pcap_setfilter():函数用于设置过滤器
- pcap_loop():与pcap_next()和pcap_next_ex()两个函数一样用来捕获数据包
- pcap_close():函数用于关闭网络设备,释放资源
上实例:
#include <iostream>
#include <stdio.h>
#include <pcap.h>
#ifdef WIN32
#pragma comment (lib,"Ws2_32.lib")
#inc