WinPacp在VS2013环境下的配置

winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。

下面将详细介绍如何在VS2013使用winpcap开发网络应用程序。

1.首先,从http://www.winpcap.org/下载winpcap.exeDeveloper's Pack.。安装winpcap.exe,并将Developer's Pack进行解压。

2.配置VS2013。在VS2013中新建一个空工程。具体设置如下:

(1)项目 →属性→配置属性→点击C/C++目录,点击展开的目录General,在右侧的Additional Include Directories中添加Include目录(Include目录在WpdPack中)

(2)项目 →属性→配置属性→点击C/C++目录,在右边的Preprocessor Definition加上WPCAP,HAVE_REMOTE,WIN32;

(3)项目 →属性→配置属性→点击Linker目录,点击展开的目录General,在右边的Additional Library Directories中添加lib目录(Lib目录在WpdPack中)
(4)项目 →属性→配置属性→点击Linker目录下的Input,在右侧的Additional Dependencies中添加wpcap.lib和Packet.lib。

 

下面给一个简单地例子:

 1 #include "pcap.h"
 2 
 3 main()
 4 {
 5     pcap_if_t *alldevs;
 6     pcap_if_t *d;
 7     int i = 0;
 8     char errbuf[PCAP_ERRBUF_SIZE];
 9 
10     /* 获取本地机器设备列表 */
11     if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
12     {
13         fprintf(stderr, "Error in pcap_findalldevs_ex: %s\n", errbuf);
14         exit(1);
15     }
16 
17     /* 打印列表 */
18     for (d = alldevs; d != NULL; d = d->next)
19     {
20         printf("%d. %s", ++i, d->name);
21         if (d->description)
22             printf(" (%s)\n", d->description);
23         else
24             printf(" (No description available)\n");
25     }
26 
27     if (i == 0)
28     {
29         printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
30         return;
31     }
32 
33     /* 不再需要设备列表了,释放它 */
34     pcap_freealldevs(alldevs);
35     system("pause");
36 }
原文地址:https://www.cnblogs.com/luckyqiao/p/3613792.html