Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188824
  • 博文数量: 71
  • 博客积分: 2990
  • 博客等级: 少校
  • 技术积分: 705
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-29 14:04
文章分类

全部博文(71)

文章存档

2011年(1)

2009年(1)

2007年(6)

2006年(42)

2005年(21)

我的朋友

分类: C/C++

2007-09-19 11:36:57

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);
}

阅读(2645) | 评论(2) | 转发(0) |
0

上一篇:(XP)PHP和Apache的整合

下一篇:炒股之抄底

给主人留下些什么吧!~~

chinaunix网友2008-06-01 18:56:53

使用最新版的Winpcap,最好还是用.net。VC6,过时了;如果坚持要用,要update里面的库。

chinaunix网友2008-05-20 15:00:18

这个配置我整了好长时间都没有成功,按照你指示才OK了.多谢你了!不过能不能请在多做些关于Winpcap的指导,多谢!