深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(1)
2009-09-11 00:00:00 来源:WEB开发网“source”是一个告诉函数在哪儿查找设备的参数,并且它使用与pcap_open函数同样的语法。与pcap_findalldevs函数不同,该设备的名称 (由alldevs->name 指定,其它的存在已连接的链表中)已经被考虑用在pcap_open函数中。相反,pcap_findalldevs函数的输出必须采用pcap_createsrcstr()格式处理后,才能把源参数传递给pcap_open函数使用。
参数source是一个字符型的缓冲区,根据新的WinPcap语法保存着“源的位置”。
检查该源以寻找适配器(本机的或远程的)(如源可以为本机的适配器“rpcap://”或远程的适配器“rpcap://host:port”)或pcap文件(如源可以为“file://c:/myfolder/”)。该字符串应该预先仔细考虑,为了阐明所需的源是否为本地/远程适配器或文件。这些源的含义都在新的语法规定(Source Specification Syntax )中定义。
参数auth是一个指向pcap_rmtauth结构体的指针。该指针保持着认证RPCAP连接到远程主机所需的信息。该参数对本地主机请求没什么意义,此时可以设为NULL。
参数alldevs是一个“pcap_if_t”结构体类型的指针,在该函数中被正确的分配。该函数成功返回时,该指针被设置为指向网络设备链表的第一个元素,该链表的每个元素都是“pcap_if_t”类型。
参数errbuf是一个指向用户分配的缓冲区(大小为PCAP_ERRBUF_SIZE)的指针,如果函数操作出现错误,该缓冲区将存储该错误信息。
函数成功则返回0,如果有错误则返回-1。“alldevs”变量返回设备列表,当函数正确返回时,“alldevs”不能为NULL。也就是说,当系统没有任何接口时,该函数也返回-1。“errbuf”变量返回错误信息,一个错误可能由下列原因导致:
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接