- 2
- 0
- 约5.04千字
- 约 8页
- 2018-12-22 发布于河北
- 举报
通常编写基于winpcap应用程序的第一件事情就是获得已
通常,编写基于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;?
};
其中结构体pcap_addr的定义在下面描述。结构体pcap_addr表示接口地址的信息,定义如下:
typedef struct pcap_addr pcap_addr_t;
?
struct pcap_addr {
??? struct pcap_addr *next;?? ?/*指向下一个元素的指针*/
??? struct sockaddr *addr;????? /* IP地址 */
??? struct sockaddr *netmask;?? /* 网络掩码 */
??? struct sockaddr *broadaddr; /* 广播地址 */
??? struct sockaddr *dstaddr;?? /* P2P目的地址*/
};
1.1.2??????? pcap_findalldevs_ex函数
通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器设备列表。WinPcap提供了pcap_findalldevs_ex函数来实现这个功能,该函数的的原型如下:
int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth,
??????????????????????? pcap_if_t **alldevs, char *errbuf);
该函数创建一个能用pcap_open函数打开的网络适配器设备列表。该函数是老函数pcap_findalldevs的一个扩展,pcap_findalldevs()是一个过时的函数,其只允许列出在本机上的网络设备。反之pcap_findalldevs_ex也允许列出一个远程机器上的网络设备,此外还能列出一个给定文件夹中可用的pcap文件。因为pcap_findalldevs_ex()依赖于标准的pcap_findalldevs()来获得本地机器的地址,所以它是平台无关的。
万一该函数必须列出远程机器上的设备,它对那台机器打开一个新的控制连接,重新获得那个网络接口并终止连接。然而,如果函数检测到远程计算机正处在“激活模式”下,连接不会终止并使用已存在的套结字。
“source”是一个告诉函数在哪儿查找设备的参数,并且它使用与pcap_open函数同样的语法。与pcap_findalldevs函数不同,该设备的名称 (
您可能关注的文档
最近下载
- 林大心理学课程.ppt VIP
- PICC穿刺点感染个案护理.pptx VIP
- 河南苗氏人口村落分布统计.docx VIP
- 课程总结-经济209.pptx VIP
- 【高清可复制】昆明市市政排水管道和附属构筑物设计安装图集2013版.pdf VIP
- 第一单元第1课《入古出新》课件-2025-2026学年人美版初中美术八年级下册.pptx VIP
- 全圆针梁钢模台车组件详解与技术性能介绍.pdf VIP
- 新教科版五年级下册科学全册复习资料知识点(重点版).doc VIP
- 机器人视觉技术及应用教学课件(共8章)第8章 机器视觉系统项目实践.pptx VIP
- 摩托罗拉MOTO602数字无绳电话说明书.pdf VIP
原创力文档

文档评论(0)