1 / 356
文档名称:

winpcap中文手册.docx

格式:docx   大小:3,112KB   页数:356页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

winpcap中文手册.docx

上传人:布罗奇迹 2022/6/23 文件大小:3.04 MB

下载得到文件列表

winpcap中文手册.docx

文档介绍

文档介绍:winpcap中文手册
WinPcap 中文技术文档

作者:
The WinPcap Team
作者主页:

模块
WinPcap用户指南
raffic Analysis, Graduation Thesis, Politecnico Di Torino (Turin, Italy, Mar. 2000)
术语
为了文献的一致性, 我们会使用术语 数据包(packet) ,尽管用术语 帧(frame) 会更加准确,因为捕获过程是在数据链路层完成的,并且数据链路首部也包含在被捕获的数据中。
本文档中使用的术语 Win9x 表示与Windows95同一体系的微软操作系统,如Windows 98和Windows ME。 术语 WinNTx 表示基于NT内核的操作系统,从Windows NT 4开始,包含了Windows 2000,Windows XP,Windows Server 2003等
附注
我们主要会致力于开发基于Windows NT/2000/XP/2003版本的WinPcap及其相关文档。这一选择是基于这样一个事实,大多数WinPcap用户都工作在NTx系统上,而且9x技术已经被微软放弃。此外,我们假定,使用PC机来完成类似网络分析这样高级任务的用户,都会安装高级的操作系统。鉴于这个原因,本文档将参考WinNTx的驱动和API。Win9x版本在概念上很类似,不过有时在执行上有些不同。在有些场合,Win9x版本的API缺少一些高级功能。这本手册会给出一个完整的API描述,并会指出那些只有WinNTx才得到支持的函数。
 WinPcap 教程: 循序渐进教您使用WinPcap
本节将向您展示如何使用WinPcap API的一些特性。 这部分教程细化成若干节课,以循序渐进的方式介绍给读者,让读者从最基本的部分(获得设备列表)到最复杂的部分(控制发送队列并收集和统计网络流量)来了解如何使用WinPcap进行程序开发。
有时,我们会给出一些简单使用的代码片断,但同时,我们提供完整程序的链接:所有的源代码包含一些指向手册其他地方的链接,这可以让您很方便地通过点击鼠标来跳转到您想查看的函数和数据结构的内容中去。
范例程序都是用纯C语言编写, 所以,掌握基本的C语言编程知识是必须的,而且,这是一部关于处理原始网络数据包的教程,因为,我们希望读者拥有良好的网络及网络协议的知识。
获取设备列表
通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个 pcap_if 结构的链表, 每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。
下列代码能获取适配器列表,并在屏幕上显示出来,如果没有找到适配器,将打印错误信息。
#include ""
main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];

/* 获取本地机器设备列表 */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}

/* 打印列表 */
for(d= alldevs; d != NULL; d= d->next)
{
printf("%d. %s", ++i, d->name);
if (d->description)
printf(" (%s)\n", d->description);
else
printf(" (No description available)\n");
}

if (i == 0)
{
printf("\nN