Libpcap学习笔记

Libpcap由二十多个C程序文件组成,按功能大致分为以下几个部分:

1)  打开,读取设备,设置过滤部分

2)  编译、优化、调试过滤部分

3)  脱机方式监听部分

4)  本地网络设置检测部分

5)  主控程序及版本部分

Libpcap数据包捕获程序流程:

   

1.       获取本地设备信息。

通过函数pcap_lookupdev寻找系统中可用的网络接口设备,返回一个表示网络适配器的字符串。

2.       打开设备开始监听会话

通过函数pcap_open_live()建立监听会话。

Pcap_t *pcap_open_live(char *device,int snaplen,int promisc,int to_ms,char *ebuf)

其中:

device为上一步中所提到的网络适配器的字符串,snaplen定义监听程序所捕获的最大字节数,promisc定义是否将网络适配器设置为混杂模式。to_ms定义读操作的时间。

Ebuf函数调用失败时返回错误信息字符串。

3.       设置过滤条件

编辑过滤字符串,设置过滤器,制定要捕获的主机、协议等,可以有效的捕获指定类型的数据。

通过函数pcap_compile将过滤字符串编译为二进制。常用的过滤字符串有“host 210.40. 7.129” 表示捕获主机210.40.7.129收发的数据帧,“tcp 表示捕获协议类型为TCP的数据帧,“port 20 表示捕获目的或源端口是20的数据帧等等,很多过滤字符串还能进行组合。

pcap_setfilter()函数进行内核过滤器的设置生效。

4.       执行捕获循环

每捕获一个数据包后就调用用户的回调函数对数据包进行处理,以上功能可通过调用以下两个函数实现pcap_dispatch,pcap_loop,它们的功能基本相同,唯一的差别在于pcap_loop在读取超时时不会返回。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值