本文介绍数据包的捕获与按照协议格式进行数据包分析。数据包捕获采用了libpcap抓包框架,能够分析IP、TCP、UDP、ARP、RARP等类型的数据包。
一、数据包捕获
数据包的捕获采用了libpcap函数库,下面介绍捕获过程中各函数的使用步骤。
1. 获取网络接口
char *pcap_lookupdev(char *errbuf)
用于返回可被pcap_open_live()或pcap_lookupnet()函数调用的网络设备名指针。如果函数出错,则返回NULL,同时errbuf中存放相关的错误消息。
2. 打开网络接口
pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf)
上面这个函数会返回指定接口的pcap_t类型指针,后面的所有操作都要使用这个指针。
第二个参数是对于每个数据包,从开头要抓多少个字节。