吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1651|回复: 0
收起左侧

[C&C++ 转载] 获取网卡列表

[复制链接]
luoshiyong123 发表于 2019-11-20 16:52
1.pcap_if_t结构体

typedef struct pcap_if pcap_if_t;

    struct pcap_if {
        struct pcap_if *next;
        char *name;        /* 适配器名字*/
        char *description;    /* 适配器描述 */
        struct pcap_addr *addresses;/*适配器地址*/
        bpf_u_int32 flags;    /* 适配器接口标识符,值为PCAP_IF_LOOPBACK */
    };

2. pcap_findalldevs函数

    int    pcap_findalldevs(pcap_if_t **, char *);
     
        说明:用来获得网卡的列表
        参数: 指向pcap_if_t**类型的列表的指针的指针; char型指针,当打开列表错误时返回错误信息
        返回值: 为int型,当显示列表失败时返回-1



3.测试例子

   
[C++] 纯文本查看 复制代码
 #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() << errbuf;
        }
        for(d = alldevs; d; d = d->next)
        {
            qDebug() << ++i << d->name;
            if(d->description)
                qDebug() << d->description;
            else
                qDebug("(No description available)");
        }
        if(0 == i)
        {
            qDebug("No interfaces found! Make sure WinPcap is installed.");
        }
        pcap_freealldevs(alldevs);
        return a.exec();
     
    }






发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 17:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表