WinPcap:获取网卡列表

来自WHY42

参见教程:http://www.winpcap.org/docs/default.htm

使用VS开发

首先配置环境,需要下载WinPcap的开发包,以及WinPcap可执行文件(安装)。下载后,新建VS空的控制台应用程序。下面设置WinPcap的库包含:

  • C/C++->常规->附加包含目录 :添加$(ProjectDir)\WpdPack\Include
  • 链接器->常规->附加库目录:添加$(ProjectDir)\WpdPack\Lib\x64
  • 链接器->输入->附加依赖性 :添加Packet.lib;wpcap.lib

新建一个main.cpp:

#include <iostream>
#define HAVE_REMOTE  
#include <pcap.h>

using namespace std;

void getNetDevice(){
    pcap_if_t *allDevs;    
    char errBuff[PCAP_ERRBUF_SIZE];

    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &allDevs, errBuff) == -1){
        std::cerr << "Error in pcap_findalldevs_ex:" << errBuff << std::endl;        
        exit(1);
    }
    int i = 0;
    for (pcap_if_t *d = allDevs; d != NULL; d = d->next){
        cout << "Device:" << ++i << "[" << d->name << "]" << std::endl;
        if (d->description)
            cout << "\t" << d->description << std::endl;
    }

    pcap_freealldevs(allDevs);
}

int main(int argc, char** argv){
    std::cout << "Running..." << std::endl;
    getNetDevice();
    return 1;
}

然后编译时注意,因为选择链接的x64的库,编译时需要新建x64的平台。