深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(1)
2009-09-11 00:00:00 来源:WEB开发网Ø 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函数释放。该函数的原型如下:
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接