Install WinPcap driver
Pcap 的 Windows 版,目前我看到的有两个:
1. WinPcap:目前最新的版本是 4.1.3,它兼容于 NDIS 5.x driver model。
2. Win10Pcap:目前最新的版本是 10.2.5002,它兼容于 NDIS 6.x driver model。
无论是 WinPcap 还是 Win10Pcap,它们两个的 SDK 都是一样的。
如果你的 Windows 版本是 Windows 7 及以上版本,可以装 Win10Pcap;否则,建议装 WinPcap。主语:虽然 Win10Pcap 的名字是 Win10,但是它实际上兼容于 Win7、Win8/8.1、Win10。
下载 WinPcap SDK
WinPcap / Win10Pcap 的 SDK 都在这里:WinPcap Developer’s Pack。解压后,得到:
WpdPack\Include*.*
WpdPack\Lib\Packet.lib
WpdPack\Lib\wpcap.lib
WpdPack\Lib\x64\Packet.lib
WpdPack\Lib\x64\wpcap.lib
把他们复制到一个特定的目录中去。比如,我是为它们创建了一个目录:C:\Lib\WinPcapSDK
C:\Lib\WinPcapSDK\Include
C:\Lib\WinPcapSDK\Lib\x86
C:\Lib\WinPcapSDK\Lib\x64
相应的文件拷贝到相应的目录里面去。
环境变量
创建一个叫做 WinPcapSDK 的环境变量,指向 C:\Lib\WinPcapSDK 目录。如果您的目录和我不一样,请用您自己的目录:
%WinPcapSDK% = C:\Lib\WinPcapSDK
创建 VC++ 项目
创建一个 VC++ 项目。
在项目属性页,设置 C/C++ | General | Additional Include Directories:增加 $(WinPcapSDK)\Include
设置 Linker | General | Additional Library Directories:
对于 Win32 项目(Configuration:All Configurations; Platform: Win32),在此项中增加:$(WinPcapSDK)\Lib\x86
对于 x64 项目(Configuration:All Configurations; Platform: x64),在此项中增加:$(WinPcapSDK)\Lib\x64
在 Linker | Input | Additional Dependencies 中,增加:
Packet.lib
wpcap.lib
在 C/C++ | Preprocessor | Preprocessor Definitions 中,增加:
WIN32
HAVE_REMOTE
然后就能在 VC++ 项目中使用 WinPcap 中的各种定义了。
如下图所示,我们在程序中引入 pcap.h 头文件,编译顺利通过: