好久沒來csdn了。
最近準備學習一下網絡抓包方面的東西,但在vc6.0下Winpcap總是配置不成功,今天在網上找到一個在VS2010中配置的,話說這會兒我已經配置並測試成功了。如下:
VS2010 配置Winpcap
新建一個項目,GetDevs.cpp。用來測試。測試代碼最後有給出。
View->Property Manager
Debug|Win32 -> Mircrosoft.Cpp.Win32.user(右鍵)->Properties
注:此處設置爲全局的!
q 設置環境目錄
VC++ Directiories -> Include Directories和Library Directories中添加路徑。
假如將wpdpack放到c盤。則:
Include Directories:c:\wpdpack\Include;
Library Directories:c:\wpdpack\Lib;
分號不要漏!
q 設置編譯條件
C/C++下Preprocessor(預處理器)的Preprocessor Definitions(預處理定義)
添加 ;WPCAP;HAVE_REMOTE;
注意分號,每個預定義符用“;”分開。
Linker(連接器)下的Command Line(命令行)
Additional Options (附加項)中輸入:
wpcap.lib ws2_32.lib packet.lib(注:用空格分隔。)
確定即可。
Ctrl + F5運行。顯示出網卡驅動信息。表明配置成功。
代碼GetDevs.cpp
#include "pcap.h"
void main()
{
pcap_if_t *alldevs,*d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* PCAP_ERRBUF_SIZE =256,ê?在¨²pcap.h中D定¡§義°? */
if (pcap_findalldevs(&alldevs, errbuf) == -1) /* 這a個?API用®?來¤¡ä獲?得Ì?網ª?卡¡§的Ì?列¢D表À¨ª */
{ fprintf(stderr,"Error in pcap_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);
else printf(" (No description available)\n");
}
if(i==0)
{printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return;
}
/*We don't need any more the device list. Free it */
pcap_freealldevs(alldevs); //釋º¨ª放¤?掉Ì?內¨²存ä?資Á¨º源¡ä
}
如有錯誤的地方,請指出。
大家一起學習探討。呵呵!
此爲原創。
謝謝~~
boyzxh
Email:[email protected]