因网络课程的作业需要用到winpcap,不得已又要和C++打交道了。由于winpcap是为vc而设计的,但是我又不大喜欢用盗版,于是打算用免费的 VC++ 2005 Express版。
1、安装 Visual Studio 2005 Express Edition 和 Paltform SDK。
如何安装Visual Studio 2005 Express在这里就不赘述了,很简单的。由于VC Express没有自带 Platform SDK,所以需要自己下载安装(如果不安装 psdk的话,就会出现 找不到 winsock2.h 的编译错误)。由于微软现在官网提供的psdk下载比较麻烦,需要windows正版验证,再加上体积比较大,所以我这里就不用,我用的psdk是在这里下载的:
XPSP2 PSDK Full Download with Local Install还有一个,不知道能不能安装在xp上,有兴趣的兄弟可以自己试试
Windows Server 2003 PSDK Full Download with Local Install似乎这两个链接在官网上是找不到的
下载、解压、安装,然后再配置 VC++:
tools --> options --> Projects and Solutions --> VC++ Directories : 把以下路径添加到相应的下拉节点中去:(其中psdk是你的sdk安装目录)
Executalbe files :psdkdir\Bin
Include files :psdkdir\include
Library files:psdkdir\lib
2、安装 winpcap:到这里下载
winpcap安装后按要求重启,如果没安装这个包,程序即使编译成功也不能运行,会提示找不到 winpcap.dll
3、下载
WinPcap Developer's
Packs解压后会得一个目录WpdPack四个子目录:
docs
Examples-pcap
Examples-remote
Include
Lib
然后配置VC++
tools --> options --> Projects and Solutions --> VC++ Directories :
其中 WpdPackPath是目录WpdPack的绝对路径
4、新建一个 win32->win32 console application 工程,然后配置工程属性:
- 右键 -> Properties -> Configuration Properties -> C/C++ -> Preprocessor -> Proprocessor Definition 往上面添加 WPCAP就可以了(这一步不做似乎也没什么问题~)
- 右键 -> Properties -> Configuration Properties -> Linker -> input -> Additional Dependencies 往上面添加 wpcap.lib Packet.lib
5、一个例子:
<!---->#include "pcap.h"
#include "remote-ext.h"
int main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* Retrieve the device list from the local machine */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}
/* Print the list */
for(d= alldevs; d != NULL; 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 1;
}
/* We don't need any more the device list. Free it */
pcap_freealldevs(alldevs);
return 0;
}
注意,如果不添加 #include "remote-ext.h" 也是会报错的~
6、链接错误:
<!---->anothertest.obj : error LNK2019: unresolved external symbol __imp__WSASetLastError@4 referenced in function _WspiapiGetNameInfo@28
anothertest.obj : error LNK2019: unresolved external symbol __imp__inet_ntoa@4 referenced in function _WspiapiLegacyGetAddrInfo@16
anothertest.obj : error LNK2019: unresolved external symbol __imp__htonl@4 referenced in function _WspiapiLegacyGetAddrInfo@16
anothertest.obj : error LNK2019: unresolved external symbol __imp__getservbyname@8 referenced in function _WspiapiLegacyGetAddrInfo@16
anothertest.obj : error LNK2019: unresolved external symbol __imp__htons@4 referenced in function _WspiapiLegacyGetAddrInfo@16
anothertest.obj : error LNK2019: unresolved external symbol __imp__inet_addr@4 referenced in function _WspiapiParseV4Address@8
anothertest.obj : error LNK2019: unresolved external symbol __imp__WSAGetLastError@0 referenced in function _WspiapiQueryDNS@24
anothertest.obj : error LNK2019: unresolved external symbol __imp__gethostbyname@4 referenced in function _WspiapiQueryDNS@24
anothertest.obj : error LNK2019: unresolved external symbol __imp__gethostbyaddr@12 referenced in function _WspiapiLegacyGetNameInfo@28
anothertest.obj : error LNK2019: unresolved external symbol __imp__getservbyport@8 referenced in function _WspiapiLegacyGetNameInfo@28
anothertest.obj : error LNK2019: unresolved external symbol __imp__ntohs@4 referenced in function _WspiapiLegacyGetNameInfo@28
解决该问题,需要只需把ws2_32.lib添加到wpcap.lib Packet.lib后面(见上面第4条)
分享到:
相关推荐
在这篇配置指南中,我们将介绍如何在 VS2012 环境下使用 WpdPack_4_1_2 和 WinPcap4_1_3 配置 WinPcap。 首先,我们需要新建一个 VS 工程,然后进入 VC++ 目录。在库目录和包含目录中,我们需要添加相应的路径。在 ...
虽然Visual Studio 2005也是一个不错的选择,但由于题目要求及历史背景原因,我们将重点讲解在VC6.0中的配置过程。完成配置后,开发者即可利用WinPcap的库函数进行网络数据包捕获等相关操作。 #### 三、安装WinPcap...
### 有关winpcap配置的问题 #### 一、下载 WinPcap 为了开始配置和使用WinPcap,首先需要从官方网站下载相应的驱动程序和开发包。根据提供的信息,下载两个主要组件: 1. **WinPcap4 驱动**: - **下载地址**:`...
1. IDE集成:如果你使用Visual Studio等IDE,需要在项目设置中指定WinPcap的库文件位置。在项目的属性页中,选择“配置属性” -> “链接器” -> “输入”,在“附加依赖项”中添加libpcap.lib和wpcap.lib。 2. ...
WinPcap,全称Windows Packet Capture,是微软Windows系统下的一个开源库,用于实时抓取和过滤网络数据包。这个强大的底层接口提供了对网络流量的直接访问,使得开发者能够构建网络监控、安全分析、性能测量等应用。...
VS2010 中配置 Winpcap 在 VS2010 中配置 Winpcap 需要注意的几个关键步骤:首先,创建一个新的项目 GetDevs.cpp,并在 View 中的 Property Manager 中设置 Debug|Win32 的Properties。在 VC++ Directories 中添加 ...
标签“visual_c”和“winpcap”进一步确认了项目的核心技术栈,即使用C++编程语言,特别是Visual Studio环境,以及依赖于WinPcap库进行底层网络数据包的捕获和处理。 在压缩包内的文件名称列表中,我们可以看到: 1...
winpcap在vc6下配置环境,winpcap函数 四步骤捕获报文.
该代码为winpcap配合visual studio 完成特定网卡的抓包
在 Visual Studio 中,需要将 Winpcap 的 Include 和 Lib 目录添加到项目的配置中。具体来说,需要在 Tools->Options->Directories 中添加 Include 和 Lib 目录。 二、常见问题和解决方法 1. 找不到 wpcap.dll ...
网络课程设计中的网络协议分析器。能实现协议分析器捕获、分析数据包功能。支持以太网MAC协议、IP和TCP/UDP协议的分析,并实现了ARP,ICMP,IGMP协议的分析,提取...Microsoft Visual Studio .NET 2003,WinPcap 4.1.2
6. `readme-cygwin`和`readme-visualC`:这两个文件提供了在Cygwin环境和Visual Studio环境下编译WinPCAP的指南,说明了必要的依赖和步骤。 7. `build_wpdpack.txt`:可能是一个详细的构建指南,包含编译和安装过程...
3.平台:WinXP,VC6,WinPcap VC2005 编译通过 运行需要安装VC6和WinPcap驱动包http://www.winpcap.org/install/bin/WinPcap_4_0_2.exe 二次开发还需要安装WinPcap开发包...
本文将详细介绍如何进行WinPcap 3.1的静默安装配置,并提供所需的文件信息。 首先,理解WinPcap的核心功能至关重要。它是一个开源库,允许应用程序访问网络接口层的数据包,而无需依赖于操作系统提供的网络编程接口...
虽然上述示例是在Visual C++ 6.0环境下运行的,但Winpcap同样支持.NET和Visual Studio 2005等其他环境。在这些环境中使用Winpcap时,除了遵循类似的配置步骤外,还可以利用.NET Framework或VS2005自带的更高级特性来...
1:务必将“Include”文件夹下的所有头文件拷贝到VC安装目录下的库文件夹中,如"D:\Program Files\Microsoft Visual Studio\VC98\Include"。 2:将“Lib”文件夹下面的所以库拷贝到VC安装目录下的Lib文件夹下,比如"D...
在调试时注意:1:务必将“Include”文件夹下的所有头文件拷贝到VC安装目录下的库文件夹中,如"D:\Program Files\Microsoft Visual Studio\VC98\Include"。2:将“Lib”文件夹下面的所以库拷贝到VC安装目录下的Lib...