獲取mac地址
在pro工程中加入:QT += network
win.h文件
#ifndef WIN_H #define WIN_H #include <QWidget> #include <QDebug> #include <QNetworkInterface> //導入頭文件 class Win : public QWidget { Q_OBJECT public: Win(QWidget *parent = nullptr); ~Win(); QStringList get_mac();//獲取mac函數 }; #endif // WIN_H
win.cpp文件
#include "win.h" Win::Win(QWidget *parent) : QWidget(parent) { this->resize(300,200); QStringList maclist=get_mac(); qDebug()<<maclist[0]; } Win::~Win() { } QStringList Win::get_mac() { QStringList mac_list; QString strMac; QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces(); //返回一個在主機上找到的所有網絡接口的列表。如果查找失敗,則返回一個0個元素的列表 for (int i=0; i<ifaces.count(); i++) { QNetworkInterface iface = ifaces.at(i); //過濾掉本地回環地址、沒有開啟的地址 if (iface.flags().testFlag(QNetworkInterface::IsUp) && !iface.flags().testFlag(QNetworkInterface::IsLoopBack)) { //過濾掉虛擬地址 if (!(iface.humanReadableName().contains("VMware",Qt::CaseInsensitive))) { strMac = iface.hardwareAddress(); mac_list.append(strMac); } } } return mac_list; }
硬件信息
需要:#include <QProcess>
win.cpp
#include "win.h" Win::Win(QWidget *parent) : QWidget(parent) { this->resize(300,200); QString str=getWMIC("wmic cpu get processorid"); //查詢cpu序列號 str=getWMIC("wmic baseboard get serialnumber"); //查詢主板序列號 str=getWMIC("wmic bios get serialnumber"); //查詢BIOS序列號 str=getWMIC("wmic diskdrive get serialnumber"); //查看硬盤 str=getWMIC("wmic cpu get Name"); //獲取cpu名稱 //"Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz" str=getWMIC("wmic cpu get NumberOfCores"); //獲取cpu核心數 //"2" str=getWMIC("wmic cpu get NumberOfLogicalProcessors"); //獲取cpu線程數 //"4" qDebug()<<str; } Win::~Win() { } QString Win::getWMIC(const QString &cmd) //獲取硬件信息函數 { QProcess p; p.start(cmd); p.waitForFinished(); QString result = QString::fromLocal8Bit(p.readAllStandardOutput()); QStringList list = cmd.split(" "); result = result.remove(list.last(), Qt::CaseInsensitive); result = result.replace("\r", ""); result = result.replace("\n", ""); result = result.simplified(); return result; }