11.1 使用WinPcap进行网络统计的方法
第10章中已详细分析了pcap_loop、pcap_dispatch、pcap_next_ex与pcap_next函数,不过,如果是在统计模式(MODE_STAT)下,这些函数读取的就不再是数据包内容,而是网络流量统计信息,包含所接收的数据包数目(Open->Npackets.QuadPart)、所接收数据包的字节数(Open->Nbytes.QuadPart)与附加的头信息(struct bpf_hdr)。
11.1.1 wpcap.dll库导出的相应函数
wpcap.dll库为网络状态统计提供了下列函数。
pcap_setmode函数,用于将工作模式设置为mode,其原型如下:
int pcap_setmode(pcap_t*p,int mode);
pcap_stats函数,用于返回当前捕获的统计信息,其原型如下:
int pcap_stats(pcap_tp,struct pcap_statps)
pcap_stat函数,用于返回当前捕获的统计信息,其原型如下:
pcap_statpcap_stats_ex(pcap_tp,int*pcap_stat_size)
结构体pcap_stat用于存储网络状态统计信息,它是pcap_stats与pcap_stats_ex函数返回状态信息的主要数据结构,该结构体的定义如下:
struct pcap_stat{
u_int ps_recv;/接收的数据包个数/
u_int ps_drop;/丢弃的数据包个数/
u_int ps_ifdrop;/当前并不支持该字段/
}