7.1 使用WinPcap打开与关闭适配器

7.1.1 wpcap.dll库导出的相应函数

wpcap.dll库为打开与关闭适配器提供了下列函数:

pcap_open函数用于打开一个通用的数据捕获源(包括本地主机、远程主机、文件三种类型),以便进行捕获或发送操作,其原型如下:


pcap_tpcap_open(const charsource,int snaplen,int fags,

int read_timeout,struct pcap_rmtauthauth,charerrbuf);


pcap_open_live函数可打开本地主机的网络适配,并且可进行网络数据包的捕获,其原型如下:


pcap_tpcap_open_live(const chardevice,int snaplen,

int promisc,int to_ms,char*ebuf)


pcap_open_offline函数可打开一个libpcap格式的存储文件,来读取数据包,详细介绍参见第12章其原型如下:


pcap_tpcap_open_offine(const charfname,char*errbuf)


pcap_open_dead函数用于创建一个pcap_t结构体,而不是用于数据捕获,其原型如下:


pcap_t*pcap_open_dead(int linktype,int snaplen)


pcap_close函数用于释放pcap_openXXX函数所获得的相关资源,其原型如下:


void pcap_close(pcap_t*p);


pcap_open、pcap_open_live、pcap_open_dead与pcap_open_offline函数用于打开适配器,其中pcap_open函数代替了所有的pcap_open_XXX函数,其可隐藏不同pcap_open_XXX函数之间的区别,因此调用者不用管各种形式的打开函数,只要采用一个单独的pcap_open函数调用就可以了。pcap_open函数通过捕获源的字符串前缀来判定源的类型,从而调用“真正”的打开函数pcap_open_XXX。