WinPcap下的主要结构体和主要函数.doc
《WinPcap下的主要结构体和主要函数.doc》由会员分享,可在线阅读,更多相关《WinPcap下的主要结构体和主要函数.doc(10页珍藏版)》请在咨信网上搜索。
1、WinPCap中的主要结构体:1. struct pcap_if_t(称为网络设备结构,表示一个网络接口设备(如网卡)结构体包含以下5个域(其结构体与pcap_if相同,可以用pcap_if_t代替pcap_if):struct pcap_if struct pcap_if *next;char *name;/* name to hand to pcap_open_live() */char *description;/* textual description of interface, or NULL */struct pcap_addr *addresses;bpf_u_int32 fl
2、ags;/* PCAP_IF_ interface flags */;Struct pcap_addr : Representation of an interface address (表示接口地址)Struct pcap_addr struct pcap_addr *next:if not NULL, a pointer to the next element in the list; NULL for the last element of the list (指向下一个元素的指针)struct sockaddr *addr a pointer to a struct sockaddr
3、containing an address struct sockaddr *netmask if not NULL, a pointer to a struct sockaddr that contains the netmask corresponding to the address pointed to by addr. struct sockaddr *broadaddr if not NULL, a pointer to a struct sockaddr that contains the broadcast address corre sponding to the addre
4、ss pointed to by addr; may be null if the interface doesnt support broadcasts struct sockaddr *dstaddr if not NULL, a pointer to a struct sockaddr that contains the destination address corre sponding to the address pointed to by addr; may be null if the interface isnt a point- to-point interfacepcap
5、_ifItem in a list of interfaces, used by pcap_findalldevs().(接口设备列表的一项(一个设备,比如一个网卡) Definition at line 148 of file incs/pcap.h.Struct pcap_ifstruct pcap_if * next if not NULL, a pointer to the next element in the list; NULL for the last element of the listchar * name a pointer to a string giving a n
6、ame for the device to pass to pcap_open_live()char * description if not NULL, a pointer to a string giving a human-readable description of the devicestruct pcap_addr * addresses a pointer to the first element of a list of addresses for the interfaceu_int flags PCAP_IF_ interface flags. Currently the
7、 only possible flag is PCAP_IF_LOOPBACK, that is set if the interface is a loopback interface.2. 结构体pcap_t Descriptor of an open capture instance. This structure is opaque to the user, that handles its content through the functions provided by wpcap.dll. (该结构体描述一个捕获的实例(例如指向一个发现的网卡,称为网卡描述符),其结构体在.h文件
8、中看不到) 3. 结构体pcap_pkthdr/ Header of a packet in the dump file. Each packet in the dump file is prepended with this generic header.(每一个分组都有不同的头部,分组的头部用该结构体表示)struct pcap_pkthdr struct timeval ts; bpf_u_int32 caplen; bpf_u_int32 len;ts:时间戳cpalen:当前分组的长度len:数据包的长度5. 结构体sockaddr_in一般编程中使用,它与sockaddr等价的数据
9、结构sockaddr_in(在Winsock2.h中定义):struct sockaddr_in ;typedef struct in_addr union struct unsigned char s_b1, s_b2, s_b3, s_b4; S_un_b; struct unsigned short s_w1, s_w2; S_un_w; unsigned long S_addr; S_un; IN_ADDR;sin_family指代协议族,在socket编程中只能是AF_INETsin_port存储端口号(使用网络字节顺序)sin_addr存储IP地址,使用in_addr这个数据结构s
10、in_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。s_addr按照网络字节顺序存储IP地址sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向sockadd的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,在最后用进行类型转换就可以了bzero(char*)&mysock,sizeof(mysock);/初始化mysock结构体名mysock.sa_family=AF_INET;mysock.sin_addr.S_un.S_addr=inet_addr(192
11、.168.0.1);等到要做转换的时候用:(struct sockaddr*)mysock 例子:获得子网掩码pcap_if_t *d;netmask = ( (sockaddr_in *) (d-addresses-netmask) )-sin_addr.S_un.S_addr;例子:Socketaddr_inInternetAddr;int nPortId = 5150;InternetAddr.sin_family = AF_INET;InternetAddr.sin_addr.s_addr = inet_addr(198.198.10.216);InternetAddr.sin_por
12、t = htonl(nPortId); WinPcap下的主要函数:1. int pcap_findalldevs (pcap_if_t * alldevsp, char * errbuf )/获取设备列表,以供函数pcap_open_live()打开这些设备Construct a list of network devices that can be opened with pcap_open_live(). Note:that there may be network devices that cannot be opened with pcap_open_live() by the pr
13、ocess calling pcap_findalldevs(), because, for example, that process might not have sufficient privileges to open them for capturing; if so, those devices will not appear on the list. alldevsp is set to point to the first element of the list; each element of the list is of type pcap_if_t,-1 is retur
14、ned on failure, in which case errbuf is filled in with an appropriate error message; 0 is returned on success.2. void pcap_freealldevs ( pcap_if_t * alldevsp ) 释放由函数pcap_findalldevs()获取的设备列表Free an interface list returned by pcap_findalldevs().pcap_freealldevs() is used to free a list allocated by p
15、cap_findalldevs().See also: pcap_findalldevs()3. pcap_t* pcap_open_live (const char * device, /要打开的网络设施,int snaplen, /捕捉的分组最大长度,单位Byteint promisc, /是否为混杂模式,1为混杂模式int to_ms, /read time_out 给予阅读分组的最大时间,单位mschar * ebuf )Device(Source):为打开的网络设施,是包含要打开的源名称的以0结尾的字符串。源名称得包含新的源规范语法(Source Specification Synt
16、ax),并且它不能为NULL。为了方便的使用源语法, snaplen:需要保留的数据包的长度。对每一个过滤器接收到的数据包,第一个snaplen字节的内容将被保存到缓冲区,并且传递给用户程序。例如,snaplen等于100,那么仅仅每一个数据包的第一个100字节的内容被保存。简言之就是从每一个包的开头到snaplen的那段内容将被保存。flags:保存一些由于抓包需要的标志。Winpcap定义了三种标志:l PCAP_OPENFLAG_PROMISCUOUS:1,它定义了适配器(网卡)是否进入混杂模式(promiscuous mode)。l PCAP_OPENFLAG_DATATX_UDP:2
17、,它定义了数据传输(假如是远程抓包)是否用UDP协议来处理。l PCAP_OPENFLAG_NOCAPTURE_RPCAP:4,它定义了远程探测器是否捕获它自己产生的数据包。read_timeout:以毫秒为单位。read timeout被用来设置在遇到一个数据包的时候读操作不必立即返回,而是等待一段时间,让更多的数据包到来后从OS内核一次读多个数据包。auth:一个指向struct pcap_rmtauth的指针,保存当一个用户登录到某个远程机器上时的必要信息。假如不是远程抓包,该指针被设置为NULL。(本地抓包不需要该参数)errbuf:一个指向用户申请的缓冲区的指针,存放当该函数出错时的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WinPcap 主要 结构 函数
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。