ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-04-28 12:03:01  阅读:331  来源: 互联网

标签:target 网络适配器 编译器 qDebug winscp include pcap Qt


最新在撸一本关于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

 

标签:target,网络适配器,编译器,qDebug,winscp,include,pcap,Qt
来源: https://blog.csdn.net/qq78442761/article/details/105789368

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有