深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(1)
2009-09-11 00:00:00 来源:WEB开发网通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器设备列表。同时在程序结束时确保释放获取的设备列表。
图片看不清楚?请点击这里查看原图(大图)。
图6-1函数调用关系图
1.1 wpcap.dll导出的相应函数接口
wpcap.dll为了获得与释放已连接的网络适配器设备列表,提供了下列函数:
文件\wpcap\libpcap\pcap\pcap.h中
struct pcap_if;
struct pcap_addr;
int pcap_findalldevs(pcap_if_t **alldevsp, char *errbuf);
void pcap_freealldevs(pcap_if_t *alldevsp ) ;
文件wpcap\libpcap\remote-ext.h中
int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf);
1.1.1 pcap_if结构体
函数pcap_findalldevs_ex或pcap_findalldevs分别返回一个 pcap_if_t类型的链表alldevs或alldevsp。每个pcap_if_t结构体都包含一个适配器的详细信息。其中成员 name 和 description 分别表示一个适配器的名称和一个更容易让人理解的描述。该结构体的定义如下:
typedef struct pcap_if pcap_if_t;
struct pcap_if {
/*如果不为NULL,则指向链表的下一个元素。如果为NULL,则为链表的尾部*/
struct pcap_if *next;
/*给pcap_open_live函数传递的一个描述设备名称的字符串指针*/
char *name;
/*如果不为NULL,则指向描述设备的一个可读字符串*/
char *description;
/*一个指向接口地址链表的第一个元素的指针*/
struct pcap_addr *addresses;
/*
*PCAP_IF_接口标志。当前仅有的可能标志为PCAP_IF_LOOPBACK,
*如果接口是回环的则设置该标志
*/
bpf_u_int32 flags;
};
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接