好久没来csdn了。
最近准备学习一下网络抓包方面的东西,但在vc6.0下Winpcap总是配置不成功,今天在网上找到一个在VS2010中配置的,话说这会儿我已经配置并测试成功了。如下:
VS2010配置Winpcap
新建一个项目,GetDevs.cpp。用来测试。测试代码最后有给出。
View->PropertyManager
Debug|Win32->Mircrosoft.Cpp.Win32.user(右键)->Properties
注:此处设置为全局的!
q设置环境目录
VC++Directiories->IncludeDirectories和LibraryDirectories中添加路径。
假如将wpdpack放到c盘。则:
IncludeDirectories:c:\wpdpack\Include;
LibraryDirectories:c:\wpdpack\Lib;
分号不要漏!
q设置编译条件
C/C++下Preprocessor(预处理器)的PreprocessorDefinitions(预处理定义)
添加;WPCAP;HAVE_REMOTE;
注意分号,每个预定义符用“;”分开。
Linker(连接器)下的CommandLine(命令行)
AdditionalOptions(附加项)中输入:
wpcap.libws2_32.libpacket.lib(注:用空格分隔。)
确定即可。
Ctrl+F5运行。显示出网卡驱动信息。表明配置成功。
代码GetDevs.cpp
#include"pcap.h"
voidmain()
{
pcap_if_t*alldevs,*d;
inti=0;
charerrbuf[PCAP_ERRBUF_SIZE];
/*PCAP_ERRBUF_SIZE=256,ê?在¨²pcap.h中D定¡§义°?*/
if(pcap_findalldevs(&alldevs,errbuf)==-1)/*这a个?API用®?来¤¡ä获?得Ì?网ª?卡¡§的Ì?列¢D表À¨ª*/
{fprintf(stderr,"Errorinpcap_findalldevs:%s\n",errbuf);
//errbuf参?数ºy,ê?当Ì¡À有®D异°¨¬常¡ê情¨¦况?发¤¡é生¦¨²时º¡À,ê?这a个?参?数ºy会¨¢被À?PCAP填¬?充?为a某3个?特¬?定¡§的Ì?错䨪误¨®字Á?串ä?
return;
}
/*显?示º?列¢D表À¨ª的Ì?响¨¬应®|字Á?段?的Ì?内¨²容¨Y*/
for(d=alldevs;d;d=d->next)
{printf("%d.%s",++i,d->name);
if(d->description)printf("(%s)\n",d->description);
elseprintf("(Nodescriptionavailable)\n");
}
if(i==0)
{printf("\nNointerfacesfound!MakesureWinPcapisinstalled.\n");
return;
}
/*Wedon'tneedanymorethedevicelist.Freeit*/
pcap_freealldevs(alldevs);//释º¨ª放¤?掉Ì?内¨²存ä?资Á¨º源¡ä
}
如有错误的地方,请指出。
大家一起学习探讨。呵呵!
此为原创。
谢谢~~
boyzxh
Email:boyzxh@126.com