说明:正在边学习边整理,主要是运行一下文档中提供的示例程序,如果有需要学习使用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 (获取更多设备信息)