[Qt]获取Mac系统的有效网卡和序列号及硬件ID等信息(
2015-05-08 14:41
716 查看
Qt是一个挺不错的跨平台开发工具,可有时候想获取一些系统(特别是Mac系统)基本信息却并不是那么手到擒来
比如本文想获取Mac,序列号等信息就花费了好一番工夫,特记录于此以备不时之需。
说明:以下代码经Qt 5.3测试通过
比如本文想获取Mac,序列号等信息就花费了好一番工夫,特记录于此以备不时之需。
说明:以下代码经Qt 5.3测试通过
//获取序列号 QProcess proc; QStringList args; args << "-c" << "ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { print $3; }'"; proc.start( "/bin/bash", args ); proc.waitForFinished(); qDebug()<< proc.readAll(); //可以通过mid(1,11) 取得其中的序列号信息 //若是想获取硬件ID可把上面的 IOPlatformSerialNumber 改为 IOPlatformUUID 即可 //获取系统用户名,要#include <stdlib.h> qDebug()<<getenv("USER"); //获取有效网卡,要#include <QtNetwork/QNetworkInterface> QString strMac; QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();//获取所有网卡信息 for (int i = 0; i < ifaces.count(); i++) { QNetworkInterface iface = ifaces.at(i); if ( iface.flags().testFlag(QNetworkInterface::IsUp) && iface.flags().testFlag(QNetworkInterface::IsRunning) && !iface.flags().testFlag(QNetworkInterface::IsLoopBack)) { //获取当前有效网卡 for (int j=0; j<iface.addressEntries().count(); j++) //这个循环很重要,读者可以尝试不用这个循环看看获取的是不是当前有效网卡:) { /* we have an interface that is up, and has an ip address * therefore the link is present * we will only enable this check on first positive, * all later results are incorrect * * */ strMac = iface.hardwareAddress(); i = ifaces.count(); //跳出外层循环 break; } } } if(strMac.isEmpty()) { //有时候还是获取不到,所以这边再次尝试获取 foreach(QNetworkInterface iface,ifaces) { if(!iface.flags().testFlag(QNetworkInterface::IsLoopBack)) { strMac = iface.hardwareAddress(); break; } } } qDebug()<<strMac;
相关文章推荐
- 获取系统特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)
- 关于获取系统信息,CPUID,硬盘ID,网卡MAC地址的VS2008实现
- 超强获取计算机信息类(可获取cpu序列号,网卡地址,ip地址,硬盘id,登录系统用户,计算机名等等)
- 超强获取计算机信息类(可获取cpu序列号,网卡地址,ip地址,硬盘id,登录系统用户,计算机名等等)
- VC++获取串口设备信息,CPU ID,硬盘ID,网卡MAC等机器硬件信息,用于加密
- 获取主机的硬件信息,CPU的ID,MAC,以及硬盘的ID
- C#获取CPU序列号代码、硬盘ID、网卡硬件地址等类文件
- 获取硬盘ID信息及网卡MAC地址的代码
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- 获取CPU序列号,硬盘ID,网卡MAC地址
- 获取cpu序列号,硬盘ID,网卡MAC地址
- unity3d 获取cpu序列号,硬盘ID,网卡MAC地址等硬件可用于加密
- 获取cpu序列号,硬盘ID,网卡MAC地址
- C++ 硬件信息 获取网卡MAC地址
- C#获取cpu序列号,硬盘ID,网卡MAC地址
- [收藏]如何获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息,等等)
- Java 程序获取系统硬件信息之网卡MAC地址
- C#获取cpu序列号,硬盘ID,网卡MAC地址
- 获取网卡MAC、硬盘序列号、CPU_ID、BIOS编号
- UWP 应用获取各类系统、用户信息 (2) - 商店授权信息、零售演示模式信息、广告 ID、EAS 设备信息、硬件识别信息、移动网络信息