使用pcap捕捉网络数据包

本文档介绍了如何在Windows环境下使用WinPcap库进行网络数据包的捕获。首先,详细说明了环境配置步骤,包括安装WinPcap、设置VS2008的编译环境,并解决编译时可能出现的问题。接着,通过示例代码展示了如何获取网络设备列表、获取设备详细信息、捕获和处理网络数据包。最后,探讨了如何处理离线dump文件,并解释了无法直接追加数据到dump文件的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:正在边学习边整理,主要是运行一下文档中提供的示例程序,如果有需要学习使用pcap,建议直接阅读winpcap文档。

资料:1、WinPcap文档:http://www.winpcap.org/   2、google和baidu

环境:windows环境:vs2008、windows7、WinPcap_4_1_2;linux环境:(现在只有windows上的运行结果,linux上运行情况以后补充。)

准备:libpcap、WinPcap是用于抓取网络数据的函数库。libpcap是Unix上的实现,WinPcap是windows上的实现。WinPcap中提供了一些只用于windows平台的接口,为了便于程序的移植这里不使用这些接口。

windows上的环境配置(参考:http://hi.baidu.com/study_together/blog/item/0c4d110333d9e796e950cdd0.html):

1、到http://www.winpcap.org/下载WinPcap,然后安装。

2、到http://www.winpcap.org/下载Support and Documentation,待用。

3、打开vs2008,新建一个project,设置环境目录:

Tools->Options...->(Options窗口的左边)Projects and Solutions->VC++ Directories->(Options窗口的右边)Platform下拉菜单选择Win32->Show directions for: 下拉菜单选择Includes files,将第2步中下载的文件中中include文件夹包含进去,然后再选择Library files,将第2步中下载的文件中中Lib文件夹包含进去->OK 

Project->"Projectname" Properties...->(弹出窗口左边)Configuration Properties->C/C++Preprocessor->(窗口右边)Preprocessor Definitions中添加字符"WPCAP;HAVE_REMOTE"->(弹出窗口左边)Linker->Command Line->(窗口右下框)Additonal options中添加字符"wpcap.lib ws2_32.lib"->确定

4、如果在下面的程序编译时遇到fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory,可以这样解决:新建一个头文件(我这里命名为setplatform.h),将这文件包含在程序的最开始处内容如下:

   

开始编码:

1、Obtainig the device list (获取设备表)

 

运行结果:

 

2 obtaining advanced information about installed devices (获取更多设备信息)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值