2009年4月18日

WinPcap编程4——捕获数据包

摘要: winpcap程序中,捕获数据包主要分为如下几步:获取网络适配器列表打开网络适配器捕获数据获取网络适配器列表在前文中已经讲述,这里就不再累述了。打开设备的函数是pcap_open()。下面是参数 snaplen, flags 和 to_ms 的解释说明 snaplen 制定要捕获数据包中的哪些部分。 在一些操作系统中 (比如 xBSD 和Win32), 驱动可以被配置成只捕获数据包的初始化部分:这样可以减少应用程序间复制数据的量,从而提高捕获效率。本例中,我们将值定为65535,它比我们能遇到的最大的MTU还要大。因此,我们确信我们总能收到完整的数据包。 flags: 最最重要的flag是用来 阅读全文

posted @ 2009-04-18 18:58 wolflion 阅读(278) 评论(0) 推荐(0) 编辑

WinPcap编程1——简介

摘要: 什么是WinPcapWinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库. 大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如sockets。 这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。 然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说,那些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。 WinPcap产生的目的,就是为Win32应用程序提供这种访问方式; Wi... 阅读全文

posted @ 2009-04-18 18:57 wolflion 阅读(206) 评论(0) 推荐(0) 编辑

WinPcap编程3——获取网络适配器列表

摘要: WinPcap应用程序的第一件事情就是获得已连接的网络适配器列表。WinPcap提供了pcap_findalldevs_ex() 函数来实现该功能: 它返回一个pcap_if结构的链表,每个这样的结构都包含了一个适配器的详细信息。下列代码能获取适配器列表,并在屏幕上打印出其名称和描述信息,如果没有找到适配器,将打印错误信息。#include "pcap.h" main(){pcap_if_t *alldevs;pcap_if_t *d;int i=0;char errbuf[PCAP_ERRBUF_SIZE];/* 获取本地机器设备列表*/if (pcap_findalld 阅读全文

posted @ 2009-04-18 18:57 wolflion 阅读(231) 评论(0) 推荐(0) 编辑

WinPcap编程2——环境搭建

摘要: 搭建WinPcap编程环境可以分为如下几步:1.下载winpcap及开发包。winpcap下载地址:http://www.winpcap.org/install/default.htmwinpcap开发包: http://www.winpcap.org/devel.htm2. 安装winpcap3. 解压winpcap开发包,将得到一个WpdPack目录,该目录中包含了5个子目录:docs、Examples-pcap、Examples-remote、Include和Lib。docs中是winpcap的帮助文档,比较通俗易懂。Examples的是一些例子include和lib则分别为C++项目的 阅读全文

posted @ 2009-04-18 18:54 wolflion 阅读(205) 评论(0) 推荐(0) 编辑

导航