WEB开发网
开发学院操作系统windows 2008 深度剖析WinPcap之(七)——获得与释放网络适配器设... 阅读

深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(1)

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: Ø WinPcap没有安装在本地/远程主机上Ø 用户没有足够的权限来列出这些设备/文件Ø 一个网络故障Ø RPCAP版本协商失败(the RPCAP version negotiation failed)Ø 其它错误(如没足够

Ø         WinPcap没有安装在本地/远程主机上

Ø         用户没有足够的权限来列出这些设备/文件

Ø         一个网络故障

Ø         RPCAP版本协商失败(the RPCAP version negotiation failed)

Ø         其它错误(如没足够的内存或其它的问题)

值得注意的是,通过调用pcap_findalldevs函数可能存在网络设备不能被pcap_open函数打开的现象。比如可能没有足够的权限来打开它们并进行捕获,如果是这样,这些设备将不出现在设备列表中。

该函数所获取的设备列表必须采用pcap_freealldevs函数手工进行释放。

1.1.3    pcap_findalldevs函数

函数pcap_findalldevs是一个过时的函数,其只允许列出本机上出现的网络设备。函数原型如下:

int pcap_findalldevs(pcap_if_t **alldevsp, char *errbuf);

函数获得已连接并能打开的所有网络设备列表,该列表能够被pcap_open_live函数打开。参数alldevsp指向列表的第一个元素,列表的每个元素都为pcap_if_t类型。如果没有已连接并能打开的网络设备,该链表可能为NULL。

函数失败返回-1,errbuf存储合适的错误信息;成功返回0。

值得注意的是,通过调用pcap_findalldevs函数可能存在网络设备不能被pcap_open_live函数打开的现象。比如可能没有足够的权限来打开它们并进行捕获,如果是这样,这些设备将不出现在设备列表中。

1.1.4    pcap_freealldevs函数

由函数pcap_findalldevs_ex或pcap_findalldevs函数返回的网络适配器设备链表,必须调用pcap_freealldevs函数释放。该函数的原型如下:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:深度 剖析 WinPcap

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接