linux下libpcap抓包分析

linux下libpcap抓包分析

ID:8856259

大小:280.50 KB

页数:10页

时间:2018-04-09

linux下libpcap抓包分析_第1页
linux下libpcap抓包分析_第2页
linux下libpcap抓包分析_第3页
linux下libpcap抓包分析_第4页
linux下libpcap抓包分析_第5页
资源描述:

《linux下libpcap抓包分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、linux下libpcap抓包分析一、首先下载libpcap包http://www.tcpdump.org/#latest-release  然后安装,安装完成后进入安装根目录的tests文件夹,编译运行findalldevstest.c(编译时加上-lpcap),查看是否发现所有网络设备。二、下载wireshark观察抓包软件的各种功能三、熟悉libpcap工作原理:四、了解libpcap抓包基本流程:H五、编程实现未完待续。。。  PS:整理了一下libpcap常用的数据类型定义·libpcap的类型定义:0)、typedefin

2、tbpf_int321)、typedefu_intbpf_u_int32   32bit的无类型整形;2)、typedefpcappcap_t   Descriptorofanopencaptureinstance(一个打开的捕获实例的描述符?)这个结构对用户是不透明的。3)、typedefpcap_dumperpcap_dumper_tlibpcap保存文件的描述符。4)、typedefpcap_ifpcap_if_t网卡链表的一个元素;5)、typedefpcap_addrpcap_addr_t网卡地址的表示;6)、typedef

3、void(*pcap_handler)(u_char*args,conststructpcap_pkthdr*header,  constu_char*packet);   其中agrs是从pcap_dispatch()函数传递过来的第四个形参,一般我们自己的包捕捉程序不需要提供它,总是为NULL;header指向pcap_pkthdr结构,该结构位于真正的物理帧前面,用于消除不同链路层支持的差异;packet指向所捕获报文的物理帧。 ·libpcap结构体Libpcap库函数所必须的数据结构定义主要包含在pcap.h和pcap-in

4、t.h两个头文件中1)、pcap结构在pcap-int.h头文件中被定义: 编程时需要涉及到的成员有:intfd;打开设备的描述符;u_char*buffer;是指向所捕获到数据的缓冲区指针structpcap{  intfd;/*文件描述字,实际就是socket*/   intselectable_fd;/*在socket上,可以使用select()和poll()等I/O复用类型函数*/   intsnapshot;/*用户期望的捕获数据包最大长度*/   intlinktype;/*设备类型*/   inttzoff;      

5、  /*时区位置,实际上没有被使用*/   intoffset;      /*边界对齐偏移量*/   intbreak_loop;/*强制从读数据包循环中跳出的标志*/   structpcap_sfsf;/*数据包保存到文件的相关配置数据结构*/   structpcap_mdmd;/*具体描述如下*/      intbufsize;/*读缓冲区的长度*/   u_charbuffer;/*读缓冲区指针*/   u_char*bp;   intcc;   u_char*pkt;   /*相关抽象操作的函数指针,最终指向特定操作系

6、统的处理函数*/   int  (*read_op)(pcap_t*,intcnt,pcap_handler,u_char*);   int  (*setfilter_op)(pcap_t*,structbpf_program*);   int  (*set_datalink_op)(pcap_t*,int);   int  (*getnonblock_op)(pcap_t*,char*);   int  (*setnonblock_op)(pcap_t*,int,char*);   int  (*stats_op)(pcap_t*,

7、structpcap_stat*);   void(*close_op)(pcap_t*);   /*如果BPF过滤代码不能在内核中执行,则将其保存并在用户空间执行*/   structbpf_programfcode;   /*函数调用出错信息缓冲区*/   charerrbuf[PCAP_ERRBUF_SIZE+1];      /*当前设备支持的、可更改的数据链路类型的个数*/   intdlt_count;   /*可更改的数据链路类型号链表,在linux下没有使用*/   int*dlt_list;   /*数据包自定义头部

8、,对数据包捕获时间、捕获长度、真实长度进行描述[pcap.h]*/   structpcap_pkthdrpcap_header;  }; /*包含了捕获句柄的接口、状态、过滤信息 [pcap-int.h]*/struc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。