winpcap学习手记
(By 风色鸟)
winpcap要使用VC6
第一次使用VC6,真的觉得配置很烦,而且觉得不可见、不可控。相比,还是喜欢linux下面的makefile。
尽管如此,还是需要把自己的配置过程记一下:
1. 新建Win32 Console Application工程,然后再新建一个C++ Source File文件;
2. Tools -> Options -> Directories标签 -> 在Show directories for:下面选择Include
files,然后在下面添加winpcap的include库; 接着,还是在Show directories for:下面,选择Library files,然后在下面添加winpcap的lib库。
3. Project -> Settings -> Link标签 -> 在Object/library modules:下面的文本框,最后添加wpcap.lib
4. 然后复制下面的例子,到新建的C++ Source File文件,编译运行就好了。下面的代码来自winpcap官方手册。我只是添加了一个#include "remote-ext.h",否则会找不到相关函数、变量定义。
#include "pcap.h"
#include "remote-ext.h"
main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* 获取本地机器设备列表 */
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);
}
/* 打印列表 */
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;
}
/* 不再需要设备列表了,释放它 */
pcap_freealldevs(alldevs);
}