Qt笔记-添加Win10Pcap库获取网络适配器(MinGW编译器)

   日期:2020-04-29     浏览:153    评论:0    
核心提示:最新在撸一本关于TCP/IP的书,因为理论要结合实际,不然对我这种搞工程的人作用不大。在此准备使用W网络

最新在撸一本关于TCP/IP的书,因为理论要结合实际,不然对我这种搞工程的人作用不大。

在此准备使用Win10Pcap,尽可能的模拟书上的内容。

 

使用这个库有如下过程:

首先安装win10pcap

然后在pro文件中设置好对应的库和lib。

 

下面是官方的查网络适配器的代码,我这里稍微改了下。

当前计算机网络适配器信息:

程序运行截图:

相关源码如下:

pro

QT -= gui

CONFIG += c++11 console
CONFIG -= app_bundle

DEFINES += QT_DEPRECATED_WARNINGS

SOURCES += \
        main.cpp

qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

INCLUDEPATH += D:/winscp/WpdPack/Include
LIBS += -L D:/winscp/WpdPack/Lib/libpacket.a \
        -L D:/winscp/WpdPack/Lib/libwpcap.a

main.cpp

#include <QCoreApplication>
#include <QDebug>
#include "pcap.h"


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    pcap_if_t *alldevs;
    pcap_if_t *d;
    int i = 0;
    char errbuf[PCAP_ERRBUF_SIZE];

    //检索本地适配器设备
    if (pcap_findalldevs(&alldevs, errbuf) == -1){

        qDebug() << "Error in pcap_findalldevs_ex: " <<  errbuf;
        return 0;
    }

    //打印
    for(d = alldevs; d != NULL; d= d->next)
    {

        qDebug() << i << ". " << d->name;
        if(d->description){

            qDebug() << d->description;
        }
        else{

            qDebug() << "No description available";
        }
    }

    if(i == 0){

        qDebug() << "No interfaces found! Make sure WinPcap is installed";
        return 0;
    }

    //释放指针
    pcap_freealldevs(alldevs);

    return a.exec();
}

源码打包下载:

https://github.com/fengfanchen/Qt/tree/master/winscp_begin_in_Qt

 

 
标签: 文章标签: C C++ Qt
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服